其他数据不会被推入数据库,只有图像

Posted

技术标签:

【中文标题】其他数据不会被推入数据库,只有图像【英文标题】:Other data does not get pushed into database, only image 【发布时间】:2022-01-10 13:38:34 【问题描述】:

下面,我有一个函数试图在将图像上传到 Firebase 存储之后将目的地添加到我的实时数据库中。

上传图片并返回网址:

  Future uploadDestinationImage(String name) async 
    final imageref = FirebaseStorage.instance
        .ref()
        .child('destinations')
        .child(name + '.jpg');

    imageref.putFile(selectedImage!);
    return await imageref.getDownloadURL();
  

将数据添加到数据库中:

  void addDestination(String name, String details, var category) async 
    if (category == 'Destination') 
      uploadDestinationImage(name).then((value) 
        String desturl = value;
        String key = destdatabaseref.child('Destinations').push().key;
        destdatabaseref.child('Destinations').child(key).set(
          'id': key,
          'name': name,
          'description': details,
          'category': category,
          'photoURL': desturl
        );
      );
    
  

但是,该代码仅将图像上传到 Firebase 存储,而不会将数据推送到我的实时数据库。某处有错误吗?还有其他方法可以让我返回图片的downloadURL并将其存储到数据库中吗?

【问题讨论】:

【参考方案1】:

putFile 调用是异步的,所以你也需要等待:

await imageref.putFile(selectedImage!);
return await imageref.getDownloadURL();

【讨论】:

以上是关于其他数据不会被推入数据库,只有图像的主要内容,如果未能解决你的问题,请参考以下文章

Angular2,Typescript:如何将对象数组推入另一个对象数组,其中只有几个对象字段

算法导论学习——数据结构

jQuery uploadify 将图像存储在 mysql 中

mongoose.findByIdAndUpdate 只会保存被推入数组的对象的第一个键值

mongoose.findByIdAndUpdate 只会保存被推入数组的对象的第一个键值

spark那些情况下不会渭词下推