我在每个文档中都有4个字段,这些集合称为“服务”:
,并且我只希望用户更改个人资料,但除等级外,我想使所有人都可以访问(可以更新),我检查了类似的问题,并且得到了一个在个人资料doc中创建子集合的解决方案称其为“ rating”,其中包含一个名为“ rate”的文档,而我只能访问此子集合以从所有人进行更新, 但我不知道如何从具有此评级问题的任何解决方案plz的文档中获取子集合数据:
创建用于评估的子集合后的安全规则:
match /{category}/{serviceid} {
allow read,create;
allow update : if resource.data.userID == request.auth.uid;
match /rating/rate {
allow read,write;
}
}
我可以使用const docs =db.collection("categoryname").get()
获得所有服务:
然后我像这样获取每个项目数据:
docs.foreach(doc => doc.data().name)
如何从文档中获取subcollection(“评级”)数据?
答案 0 :(得分:1)
您意识到使用这些规则可以允许所有人访问吗?即使未经身份验证的人也可以进行无限制的写入。那是你真正想要的吗?
要回答您的问题,可以访问/rating/rate
文档,您可以这样做:
let category = "categoryname";
db.collection(category).get()
.then(function(querySnapshot) {
querySnapshot.foreach(
function(doc) {
let serviceid = doc.id;
db.collection(category).doc(serviceid).collection("rating").doc("rate").get()
.then(function(doc) {
... // do whatever
}
}
)
}
您也可以选中Official Documentation来获取文档。