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

如何在FiRecovery中构建集合的子节点?

子车宏浚
2023-03-14

我正在尝试将以下结构从实时数据库迁移到Firestore:

•   Resources
    o   SENT
           resId1
               •    name : xxxx
               •    url : xxx
           resI2
               •    name ……
   o    ACCEPT
           resId3
           etc……
   o    REFUSED
           restIdn 
           etc….

因此,在根节点“资源”下,我有一些包含资源项列表的子节点(SENT、ACCEPT、REFUSED、...)。

使用Firestore,我似乎无法将subCollection直接置于collection之下(当我试图在管理控制台中使用Firestore复制此结构时,我需要创建一个中间文档,如:

Collection --> document --> SubCollection --> documents

女巫通向那个结构:

Resources --> SENT --> SENT --> resId1 {name: xxx, url: yyyy}

因此子节点“SENT”被复制两次(一个用于文档,一个用于子集合)。与firebase实时数据库相比,这根本不是一个改进或简化<我错过什么了吗?这种数据库结构的最佳方式是什么?

共有1个答案

赵镜
2023-03-14

(10/13/2017@11am编辑)

似乎有两种结构适合你。

选项1:三个根集合

在Firestore数据库的根目录下创建三个集合

  • 已发送的资源
  • 资源接受
  • 资源被拒绝

每一个都包含文档。

选项2:一个根集合

Firestore允许复合查询,因此您可以在根目录下创建一个名为resources的集合,并向每个文档添加type参数,其中type[发送、接受、拒绝]之一。

然后您可以执行这样的查询:

// Get all sent resources
db.collection("resources").where("type", "==", "sent").get()

由于Firestore的内置索引,此查询将始终快速

选项3:子集合。

创建一个名为resources的根集合,其中只包含三个文档:

  • 已发送
  • 接受
  • 拒绝

对于这些文档中的每一个,都创建一个resources子集合。

因此,要获取所有发送的资源:

// Get all sent resources
db.collection("resources").doc("sent").collection("resources").get()
 类似资料:
  • 我正在Firestore中制作一个“聊天演示”来保存信息,我是这样做的: 但问题是,文档显示它不存在,尽管它包含一个子集合。 正如上面写的:“这个文档不存在”,尽管它包含一个名为的子集合,其中包含更多文档。 但是我需要检查带有特定名称的文档是否存在于集合下。 我的代码是否有任何问题,或者我是否需要以其他方式进行? 提前谢谢。

  • 我目前正在Android Studio中开发Java租车应用程序。对于项目数据库,我正在使用Cloud FiRecovery。我的数据库结构如下: 第一张图像由多个随机ID文档(每个文档代表一辆车)组成的汽车集合表示。每辆车都有一个唯一的子集合,名为bookings,它保存在随机ID文档中,详细介绍了对该特定车进行的预订(第二个图像由一个booking子集合的示例表示)。 我目前在“预订历史记录”

  • 我被android firstore文档和子集合弄糊涂了。 此示例将生成以下数据结构: 代码如下: 子集合和文档节点交替显示:a、c与b、d。 但是如何在没有d节点的情况下实现类似的数据结构(如下所示): 自。add方法仅适用于document而不适用于collection,我们不能只删除d(document),因为c(collection)没有add方法。 我应该如何修改我的代码?

  • 如何使用JavaScript获取Firebase Firestore子集合“userPosts”中的所有文档?你可以在下面的图片中看到我的数据库结构。 以下是我尝试过的: 这段代码应该做的是获取子集合“userPosts”中的文档。它应该进入集合“posts”中的每个文档,然后进入“userPosts”并获取该子集合中的每个文档。 第一次收集“帖子” 子集合“userPosts”

  • 我的云Firestore数据库中有以下规则: 这个想法是,如果你拥有一个性能,你可以读写它;如果你登录,你可以创建一个性能。 此查询工作正常: 但是,如果我想获取'场景'子集合的内容,我会收到一个错误:"com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少或权限不足。"这是与以下查询: 我假设我需

  • 我是《颤栗》和《火种》的新手。 我有一个名为“菜肴”的集合,其中我有许多文档(例如名称、描述等),我还有一个名为成分的子集合,其中我有作为文档的id、名称和数量。 我要做的是取回所有含有配料的菜肴。 我有一个模型 IngredientModel模型 DishHelper 餐具供应商 主要我写了 和在家中(在构建方法中) 但是如果我尝试打印<code>打印(dishProvider.disks)我获