Перейти к основному содержимому

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

Библиотека Firebase Storage Library обеспечивает доступ к файлам в Cloud Storage через SDK Firebase, выходя за рамки встроенной поддержки FlutterFlow.

Инструкции

Чтобы начать использовать эту библиотеку:

  1. Импортируйте библиотеку в существующий проект FlutterFlow.
  2. Подключите проект FlutterFlow к Firebase (если вы еще этого не сделали). Библиотека по умолчанию использует основное хранилище (bucket) связанного проекта Firebase. Вы можете переопределить это поведение, передав явный URL хранилища в любое из действий.
  3. Используйте пользовательские действия и пользовательские функции в потоках действий.

Пользовательские действия

  • uploadFileToBucket — Загрузка файла по любому пути в любом хранилище (bucket), к которому у вас есть права на запись.

    • Параметры:
      • bucketName (String?) для загрузки файла. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • fullPath (String?), куда будет записан файл внутри хранилища. Если указано, параметр prefix игнорируется.
      • uploadedFile (FFUploadedFile), который нужно загрузить в Cloud Storage. Это результат предыдущего действия Store media for upload.
      • prefix (папка/каталог) (String?), куда будет загружен файл. Если fullPath не указан, действие использует этот параметр и name из uploadedFile, чтобы определить полный путь для записи файла.
    • Результат действия:
      • В случае успеха результат действия — это fileObject, содержащий полный путь загруженного файла.
  • listAllFilesInBucket — Получение списка всех файлов в любом хранилище, к которому у вас есть права на чтение.

    • Параметры:
      • bucketName (String?) для получения списка файлов. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • listType (StorageListType?) элементов для получения списка (файлы, каталоги, оба). Если оставить пустым, действие вернет список как файлов, так и префиксов (папок/каталогов).
      • prefix (String?) — это /, разделенный путем, от которого начинать получение списка файлов. Если оставить пустым, действие вернет элементы в корне хранилища.
    • Результат действия:
      • В случае успеха результат действия — это List из элементов fileObject.
  • downloadFile — Скачивание данных файла, к которому у вас есть права на чтение. Это скачивает фактические данные в код приложения. Если вместо этого нужен общедоступный URL для данных, используйте getDownloadUrl.

    • Параметры:
      • bucketName (String?) для скачивания файла. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • fullPath (String) файла, данные которого будут прочитаны из хранилища.
    • Результат действия:
      • В случае успеха результат действия — это FFUploadedFile с данными файла, прочитанными из хранилища.
  • getDownloadUrl — Получение URL для скачивания файла в хранилище, к которому у вас есть права на чтение. Этот URL обеспечивает общедоступный доступ только для чтения к файлу.

    • Параметры:
      • bucketName (String?), содержащий файл. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • fullPath (String) файла, для которого нужно получить URL скачивания.
    • Результат действия:
      • В случае успеха результат действия — это HTTP-URL, позволяющий получить общедоступный доступ к файлу.
  • getMetadataForFile — Получение метаданных для файла в любом хранилище, к которому у вас есть права на чтение.

    • Параметры:
      • bucketName (String?), содержащий файл. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • fullPath (String) файла, для которого нужно получить URL скачивания.
    • Результат действия:
      • В случае успеха результат действия — это FullMetadata со всеми метаданными и пользовательскими метаданными файла.
  • updateMetadataForFile — Обновление метаданных для файла в любом хранилище, к которому у вас есть права на запись.

    • Параметры:
      • bucketName (String?), содержащий файл. Если оставить пустым, используется основное хранилище связанного проекта Firebase.
      • fullPath (String) файла, для которого нужно получить URL скачивания.
      • metadata (SettableMetadata), которую нужно записать в хранилище Cloud Storage для файла. Если какое-либо значение в метаданных оставлено пустым, оно остается неизменным в Cloud Storage.
    • Результат действия:
      • В случае успеха результат действия — это FullMetadata со всеми метаданными и пользовательскими метаданными файла после обновления.
  • getPathFromUrl — Получение пути для файла на основе его URL (https:// или gs://). Это синхронный вызов, поскольку не требует обращения к серверу.

    • Параметры
      • Url для разбора.
    • Результат действия:
      • Результат действия — это fileObject, полученный из URL.
  • 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 в SDK Firebase для Cloud Storage.

  • SettableMetadata — устанавливаемые метаданные элемента в хранилище, передаваемые в вызов updateMetadataForFile, моделированы по классу SettableMetadata в SDK Firebase для Cloud Storage.

  • KeyValuePair — Пара ключ/значение String/String, используемая для customMetadata в типах данных FullMetadata и SettableMetadata.