如何从Firebase存储获取图像URL?

时间:2020-08-07 10:59:19

标签: firebase flutter dart

此功能保存在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});
            })

1 个答案:

答案 0 :(得分:0)

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});
  }