分享
三行代码  ›  专栏  ›  技术社区  ›  Emanuel Developer

在Cloud Firestore中将文档添加到集合中,而不覆盖以前的文档抖动

  •  0
  • Emanuel Developer  · 技术社区  · 6 天前

    在我的flutter应用程序中,我需要将文档添加到一个集合“influencerPost”中,每次用户添加一个新的“post”时,这个文档都必须添加到以前的。。。但在这一刻,我得到了一个覆盖上一个文件。 uploadImage 未来 之后我创建了一个名为 influencerPost 我必须添加每次新的职位是生成新的文件没有覆盖

    以下是完整代码:

    Future uploadImage(BuildContext context) async {
        String fileName = basename(_postImage.path);
        Reference firebaseStorageRef =
            FirebaseStorage.instance.ref().child('postImage/$fileName');
        UploadTask uploadTask = firebaseStorageRef.putFile(_postImage);
        TaskSnapshot taskSnapshot = await uploadTask.whenComplete(() => null);
        final String downloadUrl = await taskSnapshot.ref.getDownloadURL();
        await FirebaseFirestore.instance
            .collection('influencerPost')
            .doc(firebaseUser.uid)
            .set({
          "imageUrl": downloadUrl,
          'postText': IfUserProfile.post
        });
        setState(() => CircularProgressIndicator());
      }
    

    1 回复  |  直到 6 天前
        1
  •  1
  •   Rishi Saraf    6 天前

    因为你想维护多个post针对用户,你必须创建子集合。检查下面我添加了sub collection.collection(“post”)的代码

        Future uploadImage(BuildContext context) async {
        String fileName = basename(_postImage.path);
        Reference firebaseStorageRef =
            FirebaseStorage.instance.ref().child('postImage/$fileName');
        UploadTask uploadTask = firebaseStorageRef.putFile(_postImage);
        TaskSnapshot taskSnapshot = await uploadTask.whenComplete(() => null);
        final String downloadUrl = await taskSnapshot.ref.getDownloadURL();
        await FirebaseFirestore.instance
            .collection('influencerPost')
            .doc(firebaseUser.uid)
            .collection("post")
            .add({
          "imageUrl": downloadUrl,
          'postText': IfUserProfile.post
        });
        setState(() => CircularProgressIndicator());
      }