通过Flutter中的文件路径将图像上传到firebase的最简单方法是什么?

3bygqnnd  于 2023-02-20  发布在  Flutter
关注(0)|答案(1)|浏览(169)

我正在通过API调用生成图像。API调用工作正常,我已经能够成功地将图像下载到设备上。下一步我需要通过文件路径将此文件上传到firebase。
下面是我的代码

import 'package:flutter/services.dart';
import 'package:image_downloader/image_downloader.dart';
import 'package:image_downloader_web/image_downloader_web.dart';
import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';

Future portraitsave(
  String? imageURL,
  String uid,
) async {
  try {
    // Saved with this method.
    var imageId = await ImageDownloader.downloadImage(imageURL!);
    if (imageId == null) {
      return;
    }
    // Below is a method of obtaining saved image information.
    var fileName = await ImageDownloader.findName(imageId);
    String path = await ImageDownloader.findPath(imageId).toString();
    var size = await ImageDownloader.findByteSize(imageId);
    var mimeType = await ImageDownloader.findMimeType(imageId);
  } on PlatformException catch (error) {
    print(error);
  }
}

我尝试做的是使用"path"变量把这个图像上传到firebase。有什么想法吗?

zf2sa74q

zf2sa74q1#

既然你提到了你在本地文件中的一个图像,我就假设你想通过Firebase把它们上传到云存储,而不是Firestore(这是一个文档数据库,也是Firestore的一部分)。
要将本地映像上载到Firestore:
1.创建对本地文件的File引用。
1.创建一个Reference到您希望文件在云存储中结束的位置。
1.对传入文件的引用调用putFile
以下是Firebase文档中有关上载文件的示例:

Directory appDocDir = await getApplicationDocumentsDirectory();
String filePath = '${appDocDir.absolute}/file-to-upload.png';
File file = File(filePath);

try {
  await mountainsRef.putFile(file);
} on firebase_core.FirebaseException catch (e) {
  // ...
}

相关问题