【问题标题】:How to save downloadImageurl to firestore?如何将 downloadImageurl 保存到 Firestore?
【发布时间】:2020-10-15 03:44:57
【问题描述】:

我正在尝试在按下按钮后立即将我的下载图片网址添加到 Firestore。但它不是存储一个 url,而是存储“未来的实例”

我试过下面的代码。

将图像存储到存储器:

 Future uploadImageToFirebaseStorage(BuildContext context) async {
StorageReference firebaseStorageRef =
    FirebaseStorage.instance.ref().child('uploads/$name');
StorageUploadTask uploadTask = firebaseStorageRef.putFile(_imageFile);
StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete;  }

这是获取图片网址:

Future<void> getImageFromStorage() async {
final ref = _storage.ref().child('uploads/$name');
var url = await ref.getDownloadURL();
_downloadUrl = url.toString();
print('The URL is : $_downloadUrl');
return url; }

并将此函数用作:

   onPressed: () {
                  uploadImageToFirebaseStorage(context);
                  if (doctorsName != null &&
                      doctorsPost != null &&
                      doctorsDegree != null) {
                    
                    _firestore.collection('Doctors Details').add({
                      'Name': doctorsName,
                      'Degree': doctorsDegree,
                      'Post': doctorsPost,
                      'URL': _downloadUrl, // Storing URL
                    });
                  }
                  
                  setState(() {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => Doctors(),
                      ),
                    );
                  });

我尝试了很多,但我无法解决这个问题。我想我已经清楚地提到了我的问题。我现在正在等待你的帮助。 谢谢!

【问题讨论】:

    标签: android firebase flutter google-cloud-firestore


    【解决方案1】:

    由于uploadImageToFirebaseStorage 被标记为async,您需要await 完成它才能使用结果:

    await uploadImageToFirebaseStorage(context);
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-14
      • 2019-09-21
      • 2018-06-25
      • 2021-12-31
      • 1970-01-01
      • 2019-10-27
      • 2021-10-01
      • 2019-11-15
      相关资源
      最近更新 更多