下面是我的消防站数据库
消息子集合如下所示:
下面是我的安全规则。
match /channels/{channelID=**} {
allow read: if request.auth.uid in resource.data.participants;
allow write: if request.auth.uid in resource.data.participants;
但是,当我尝试使用下面的代码侦听消息集合中的消息文档时
firestore.collection('channels').doc(channelId).coll
我正在尝试读取子集合中的文档数量,因为我使用的是下面的代码,但这是读取文档的次数与子集合中的文档数一样多,我想确保只读一次,而不是读一次,请协助,谢谢。
func getNumberOfComments() {
Firestore.firestore().collection("posts").document(postId).collection("comments").getDocuments{ (snapshot, error) in
if let error = error{
对于Firebase实时数据库的安全规则,可以使用以下规则在同一棵树中存在公共数据和私有数据。
但是,在使用Firestore时,它似乎不能使我们这样做,因为我们可以检索的数据只有在集合或文档下。当在同一个文档中定义公共数据和私有数据并获取数据w/ collection/document时,如果我们不是所有者,就会得到私有数据权限不足的错误。
在使用RTDB时,我们可以获得'users/{userId}/publicInfo‘的数据,因为我们对收集/文档一无所知。
有什么方法可以用Firestore来处理RTDB吗?否则,我们应该分开进行公共/私人收藏?
// rule of Fire