首页 > 解决方案 > 如何从 Firebase 存储中获取图像 URL?

问题描述

此函数保存在 FireStore 中:“Future”实例而不是 url。如果没有 toString 方法,它会给出错误“未来动态不能分配给字符串”。

 onPressed: () {
              final StorageReference ref = FirebaseStorage.instance
                  .ref()
                  .child('images')
                  .child('image4.jpg');
              ref.putFile(image);
              final String downloadUrl = ref.getDownloadURL().toString();
              Firestore.instance.collection('images').add({"url": downloadUrl});
            })

标签: firebaseflutterdart

解决方案


ref.getDownloadURL()是一个未来,所以你需要await

onPressed: () async {
    final StorageReference ref = FirebaseStorage.instance
        .ref()
        .child('images')
        .child('image4.jpg');
    StorageUploadTask uploadTask = ref.putFile(image);
    String downloadUrl = await (await uploadTask.onComplete).ref.getDownloadURL();
    Firestore.instance.collection('images').add({"url": downloadUrl});
  }

推荐阅读