Библиотека Firebase Storage
Библиотека Firebase Storage даёт доступ к файлам в Cloud Storage через Firebase SDK — за пределами того, что умеет встроенная работа с файлами.
Подключение
- Импортируйте библиотеку в проект.
- Подключите проект к Firebase, если это ещё не сделано. По умолчанию библиотека работает с бакетом связанного проекта Firebase; другой бакет задаётся явным параметром в любом действии.
- Используйте собственные действия и функции библиотеки в своих потоках действий.
Собственные действия
-
uploadFileToBucket— загружает файл по любому пути в любой бакет, куда у вас есть доступ на запись.- Параметры:
bucketName(String?) — бакет для загрузки. Пусто — используется бакет проекта Firebase.fullPath(String?) — полный путь внутри бакета. Если он задан, параметрprefixигнорируется.uploadedFile(FFUploadedFile) — сам файл; обычно это результат предыдущего действияStore media for upload.prefix(String?) — папка, куда положить файл. ЕслиfullPathне задан, путь собирается изprefixи имени файла.
- Результат:
fileObjectс полным путём загруженного файла.
- Параметры:
-
listAllFilesInBucket— перечисляет файлы в бакете, доступном на чтение.- Параметры:
bucketName(String?) — бакет. Пусто — бакет проекта Firebase.listType(StorageListType?) — что перечислять: файлы, папки или и то и другое. Пусто — и файлы, и папки.prefix(String?) — путь через/, откуда брать список. Пусто — корень бакета.
- Результат:
ListэлементовfileObject.
- Параметры:
-
downloadFile— скачивает содержимое файла в приложение. Если нужен не сам файл, а публичная ссылка на него, используйтеgetDownloadUrl.- Параметры:
bucketName(String?) — бакет. Пусто — бакет проекта Firebase.fullPath(String) — путь к файлу в бакете.
- Результат:
FFUploadedFileс данными файла.
- Параметры:
-
getDownloadUrl— возвращает ссылку для скачивания файла. По этой ссылке файл доступен всем на чтение.- Параметры:
bucketName(String?) — бакет с файлом. Пусто — бакет проекта Firebase.fullPath(String) — путь к файлу.
- Результат: HTTP-ссылка с публичным доступом к файлу.
- Параметры:
-
getMetadataForFile— читает метаданные файла.- Параметры:
bucketName(String?) — бакет с файлом. Пусто — бакет проекта Firebase.fullPath(String) — путь к файлу.
- Результат:
FullMetadataсо всеми метаданными, включая пользовательские.
- Параметры:
-
updateMetadataForFile— записывает метаданные файла в бакете, доступном на запись.- Параметры:
bucketName(String?) — бакет с файлом. Пусто — бакет проекта Firebase.fullPath(String) — путь к файлу.metadata(SettableMetadata) — что записать. Пропущенные и пустые значения в Cloud Storage остаются как были.
- Результат:
FullMetadata— метаданные файла после обновления.
- Параметры:
-
getPathFromUrl— разбирает ссылку (https://илиgs://) и достаёт из неё путь. Обращения к серверу не требует, работает синхронно.- Параметры:
Url— ссылка для разбора. - Результат:
fileObject, собранный из ссылки.
- Параметры:
-
deleteFileFromBucket— удаляет файл из бакета, доступного на запись.- Параметры:
bucketName(String?) — бакет с файлом. Пусто — бакет проекта Firebase.fullPath(String) — путь к файлу.
- Результат: при успехе файл удалён; ничего дополнительно не возвращается.
- Параметры:
Перечисления
StorageListType— что возвращаетlistAllFilesInBucket:files— только файлы по указанному пути.prefixes— только префиксы. Привычнее называть их папками, но в Cloud Storage папок нет: их роль играют символы/в именах файлов, и такие фрагменты имени называются префиксами.filesAndPrefixes— и файлы, и префиксы.
Типы данных
-
fileObject— метаданные файла или префикса в Cloud Storage:fullPath(String) — полный путь внутри бакета, без ведущего/.isPrefix(Boolean) —falseдля файла,trueдля префикса.
-
FullMetadata— полные метаданные объекта, которые возвращаетgetMetadataForFile. Повторяет классFullMetadataиз Firebase SDK. -
SettableMetadata— метаданные, которые передаются вupdateMetadataForFile. Повторяет классSettableMetadataиз Firebase SDK. -
KeyValuePair— пара «строка — строка», из таких пар состоитcustomMetadataвFullMetadataиSettableMetadata.