当前位置: 首页 > 知识库问答 >
问题:

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

韦睿
2023-03-14

在我的flatter应用程序中,我需要将文档添加到集合“influencerPost”,每次用户添加新的“post”时,该文档都必须添加到以前的。。。但在这一刻,我只是得到了对上一个文档的覆盖。正如您通过我的方法所看到的,我已经上传了图像,并将其存储到Firebase中。之后,我创建了一个名为“影响者帖子”(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个答案

屠德宇
2023-03-14

由于要针对用户维护多个帖子,所以必须创建子集合。检查下面我添加子集合的代码。收款(“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());
  }
 类似资料:
  • 我们在Google Firestore中有一个收藏。 我们是否可以在一条语句中添加一个包含数据的文档和此新文档下的子集合?

  • 我想创建一个集合而不在其中创建任何文档。但不是先创建文档,然后删除文档。我尝试了一些方法,但当我删除文档时,我的集合也被删除了。 Firestore图像

  • 是否有方法获取将文档添加到集合后生成的文档id? 如果我将文档添加到代表社交媒体软件中“帖子”的集合中,我想获取该文档ID并将其用作不同集合中另一个文档中的字段。 如果我无法获取添加文档后生成的文档Id,我是否应该计算一个随机字符串,并在创建文档时提供Id?这样我就可以使用与其他文档中的字段相同的字符串了? 快速结构示例:

  • 您好,我是firebase firestore的新手,无法将对象直接添加到集合中查看图像错误结果和预期结果 尝试 它在余额集合下创建一个新文档,但我需要它的Object值直接在余额集合中

  • 问题内容: 没有关于如何在Firestore中的文档中添加子集合,如何使用Web应用程序添加子集合的文档? 甚至像这样尝试过,但没有奏效。如何使用代码在应用程序中添加子集合?有什么办法可以做到,还是使用Firebase实时数据库会更好?如果是这样,请让我知道如何在Firebase中执行此操作,我也想这样添加, 但我却收到这样的错误,错误说明了这一点 问题答案: 如果更改为,您的代码应该可以工作。然

  • 我的问题是“另存为”对话框。如果我保存为一个不存在的复合文档,那么一切都很好。如果我双击一个现有的复合文档,那么我的代码会询问您是否要覆盖它,这也很好。 但是,错误的是,如果您键入现有复合文档的名称并单击save,它就像您单击cancel一样。 我使用FileFilter和FileView来配置所有文件的显示和过滤。 null (无论如何,在我看来)这是错误的。它应该返回APPROVE_OPTIO