Библиотека Firebase Storage

Библиотека Firebase Storage даёт доступ к файлам в Cloud Storage через Firebase SDK — за пределами того, что умеет встроенная работа с файлами.

Подключение

  1. Импортируйте библиотеку в проект.
  2. Подключите проект к Firebase, если это ещё не сделано. По умолчанию библиотека работает с бакетом связанного проекта Firebase; другой бакет задаётся явным параметром в любом действии.
  3. Используйте собственные действия и функции библиотеки в своих потоках действий.

Собственные действия

  • 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.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC