Google cloud firestore 存在对象键的Firestore查询文档
我正在编写一个跟踪事件的应用程序。我使用firestore创建了一个主要的Google cloud firestore 存在对象键的Firestore查询文档,google-cloud-firestore,Google Cloud Firestore,我正在编写一个跟踪事件的应用程序。我使用firestore创建了一个主要的事件集合,将每个事件作为文档存放。每个文档都有自己的详细信息(包括角色对象)和事件中自己的步骤集合 集合对象如下所示: events > [collection] eventid1 > [doc] steps > [collection] location: "Even Center", notes: "Some notes here",
事件集合
,将每个事件作为文档存放。每个文档都有自己的详细信息(包括角色
对象)和事件中自己的步骤集合
集合对象如下所示:
events > [collection]
eventid1 > [doc]
steps > [collection]
location: "Even Center",
notes: "Some notes here",
timestamp: 1272153600,
title: "A great event",
roles:
userID1: 0, //numbers to define role type
userID2: 1,
userID3: 1,
我试图做的是查询存在roles.userID1
的任何事件。我知道firestore没有子集合查询,所以这是我最接近解决这个问题的方法
只有3个“角色”(0=所有者,1=编辑器,2=查看器)。我尝试编写三个查询,并使用.where(“roles.”+this.user.uid,“==”,0)
组合查询。这会起作用(尽管事后我遇到了一些数组问题),但我不希望每个查看此文件的用户都要打3个电话
我在某个地方看到一条随机评论,你可以使用查询
.where(“roles.”+this.user.uid,”,正如我上面的评论所述,我能够回答我自己的问题,因为我不小心让自己成功了
早些时候,我决定给我的角色一个数字值,而不是字符串值。0、1和2。现在我意识到,我可以通过使用<3
有效地使用.where
子句
我的查询现在包括.where(“角色”)+this.user.uid,“哇……在反复阅读我的问题后,我意识到我使用数字作为角色进行了完美的设置。我正在使用查询.where(“角色”)+this.user.uid,“我有相同的文档结构,我以相同的方式查询文档,与使用字符串角色略有不同:.where(`users.${this.$currentUser.id},'>','')
,但我无法为列表
操作制定安全规则,只能为获取
操作制定安全规则。您能够编写安全规则吗?”?