firebase - 如何使用flutter在Firestore中存储多个URL

标签 firebase flutter dart google-cloud-firestore google-cloud-storage

我有一个名为“上传”的屏幕,用户可以通过输入说明和多张图片来上传帖子。
在主页上,我将从Firestore检索数据。

问题:

在上载屏幕中,当我按一下以在Firebase存储中上载图像以及在Firestore中这些图像的URL时。
存储多个图像没有问题。在Firestore中存储URL时出现问题。

enter image description here

我尝试过的

Widget postButton(){
    return RaisedButton(
      shape:RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0),),
      color: Color.fromRGBO(0,21,43,1),
      onPressed:  () {
              uploadToFirebase();
              UploadPost();
      },
      textColor: Colors.white,
      padding: EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0),
      child: Container(
        alignment: Alignment.center,
        width: _width/1.7,
        child: Text(
          "Upload Post",
          style: TextStyle(
            fontSize: 16.0,
          ),
        ),
      ),
    );
  }

  void UploadPost() async{
   UserManagement().addPost(Name,Des,UserImageUrl,ImageUrl,PhoneNumber, context);
  }

  void uploadToFirebase() async{
    _paths.forEach((fileName, filePath) => {upload(fileName, filePath)});
  }

  void upload(fileName, filePath) async{
    DateTime date = new DateTime.now();
    var Date = DateFormat('EEE d MMM kk:mm:ss').format(date);
    StorageReference storageRef = FirebaseStorage.instance.ref().child("User Posts").child('$PhoneNumber').child('$Date').child('$date');
    final StorageUploadTask uploadTask = storageRef.putFile(File(filePath));
    var downUrl = await (await uploadTask.onComplete).ref.getDownloadURL();
    var url = downUrl.toString();
    print(url);
    setState(() {
      ImageUrl = url;
      print("Done");
      print(ImageUrl);
    });

  }

谢谢

最佳答案

获得url后,您可以将其存储在firestore中:

var url = downUrl.toString();
    print(url);
Firestore.instance.collection("Posts").document("doc_id")setData(
  {
   "image Urls" : url,
  },merge : true).then((_){
      print("success!");
  });

这会将url添加到文档中

关于firebase - 如何使用flutter在Firestore中存储多个URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61286381/

相关文章:

firebase - 检查Firebase文档中的特定字段,如果找到字段,则返回文档ID。

node.js - Node js Firestore事务中的多个文档读取

flutter - 将监听器附加到 scrollController

flutter - 我们如何使用 Flutter.io 生成 PWA

dart - 如何在Dart中通过CustomEvent测试详细信息的类型?

dart - 在 dart 的 MultipartRequest 中添加授权 header

android - FirebaseUI 身份验证 - Facebook 登录错误 : Unsuccessful debug_token response from Facebook

java - 如何从 firebase 实时数据库中重新排序数据

dart - Flutter:将盒子阴影添加到透明容器

Dart - 需要库/部分和导入/导出的解释