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

如何在Firestore中使用Flutter复制包含子集合的文档?

郭凡
2023-03-14

我在Firebase Firestore中收集了一些文档,比如:产品。每个产品可以有多个子集合,如图片、规格、制造商等。

现在我想复制一个包含所有子集合及其文档的产品。我可以很容易地复制产品,但是获取子集合和文档似乎还不太可能。

这可以从颤振中实现吗?


共有1个答案

韩烈
2023-03-14

我建议将这种类型的数据存储在产品文档中,因为它是关于产品的数据。但是,如果出于某种原因您需要将该数据存储在子集合中,您确实有两种选择......

>

  • 如果您不知道子集合是什么,可以编写递归函数来获取第一个文档,从中读取子集合,获取所有这些文档,然后重复操作,直到不再剩下子集合。

    如果你知道你得到的子集合是什么,只需发送多个请求。

    final db = FirebaseFirestore.instance;
    final results = await Future.wait([
      db.collection('products').doc(docID).get(),
      db.collection('products/$docID/pictures').get()
    ])
    

  •  类似资料:
    • 我正在使用Java开发一个Android应用程序,我使用firestore数据库,我有一个名为用户位置的集合,其结构类似于照片: 分贝 我的问题是,当一个用户改变他的位置或一个新用户进入一个已经存在的位置(其他用户有相同的位置)时,它会创建一个新文档(如在“oran, algerie”中)。当我添加新用户并更新文档时,我想使用,但问题是我无法以正常方式检索根集合的所有文档: 它返回null。我尝试

    • 我正在制作一个应用程序,它存储用户使用我的应用程序学习了多少分钟。我的FiRecovery数据库以“用户”集合开始,每个用户都有自己的文档,该文档由他们在Auth中生成的用户ID命名。 我的问题是,如果我读取他们的userID文档(其子集合中有许多文档),这是算作一次读取,还是也算作子集合中的文档数? 提前感谢。

    • 我所处的情况是,当用户付款时,存储在Firestore集合(CartProducts)中的购物车产品应移动到名为SuccessFullOrders的新集合。 因此,我的基本问题是如何在Flutter中将所有文档从一个集合移动到Firestore的另一个集合 我不知道如何在flutter中编写代码。谢谢你的回答 这是我的代码

    • 我有一个集合,其中每个文档都有一些公共数据,如用户名和字符级别,但也有一个私有子集合,它有字符的黄金量。 现在我可以查询特定文档的characters collection,但是子collection数据不会返回,所以我需要执行二次查询来检索它。

    • 我的用户可以在子集合中创建文档(比如任务),并使用一系列安全规则检查身份验证、权限和数据有效性。他们甚至可以选择多个任务并将其复制到同一集合中。现在,一个普通用户可能一次最多创建100个任务,但如果有人恶意获取我的数据库凭据,进行身份验证,并尝试以编程方式创建大量有效文档,该怎么办?这将使Firestore的扩展不会出现问题,也会给我的Firebase账单带来意想不到的惊喜。这是我首先关心的问题,

    • 我有两个Firestore集合,和。下面是每个文件中的典型文档所包含内容的简化示例。 此设置使查询任何给定用户按时间顺序排序的帖子变得非常容易,只需查找其字段等于该用户的文档引用的文档。 我在iOS/Swift中通过以下方法实现了这一点,尽管我们正在为iOS、Android和Web构建这个应用程序。 是否可以构建我正在描述的查询,或者我将不得不采用这种不太理想的方法?这似乎是一个相当常见的查询用例