Flutter web - загрузить файл изображения в хранилище Firebase - PullRequest
1 голос
/ 13 января 2020

В Интернете я выбираю файл изображения с компьютера и получаю объект изображения файла. Затем я хочу загрузить его в Firebase Storage. Для Android и iOS версий приложения я использовал облачную функцию Firebase и многокомпонентный запрос http. Это работало, но для веб-версии приложения это не так. Итак,

Как я могу загрузить файл изображения html в Firebase Storage, напрямую или через облачную функцию?

Ответы [ 2 ]

3 голосов
/ 15 января 2020

Наконец мне удалось найти решение этой проблемы. Для этого мне нужно было установить две зависимости: firebase и universal_ html. Все же сложно найти решение, его реализация была на самом деле простой. Вот код функции, которую я использовал для загрузки файла изображения html в Firebase Storage, в папку «images»:

import 'dart:async';
import 'package:universal_html/prefer_universal/html.dart' as html;
import 'package:firebase/firebase.dart' as fb;

Future<Uri> uploadImageFile(html.File image,
      {String imageName}) async {
    fb.StorageReference storageRef = fb.storage().ref('images/$imageName');
    fb.UploadTaskSnapshot uploadTaskSnapshot = await storageRef.put(image).future;

    Uri imageUri = await uploadTaskSnapshot.ref.getDownloadURL();
    return imageUri;
}

Надеюсь, это поможет кому-то с такой же потребностью, как и я.

2 голосов
/ 13 января 2020

Чтобы получить доступ к облачному хранилищу в вашем приложении Flutter for Web, вы можете использовать плагин firebase-dart . Вы можете найти пример доступа к хранилищу через firebase-dart в репозитории.

...