对于Firebase实时数据库的安全规则,可以使用以下规则在同一棵树中存在公共数据和私有数据。
但是,在使用Firestore时,它似乎不能使我们这样做,因为我们可以检索的数据只有在集合或文档下。当在同一个文档中定义公共数据和私有数据并获取数据w/ collection/document时,如果我们不是所有者,就会得到私有数据权限不足的错误。
在使用RTDB时,我们可以获得'users/{userId}/publicInfo‘的数据,因为我们对收集/文档一无所知。
有什么方法可以用Firestore来处理RTDB吗?否则,我们应该分开进行公共/私人收藏?
// rule of Fire
我正在努力学习如何使用来存储和保护一些简单的数据,因此我开始编写一些基本规则来验证从API传递的数据是否合理。
我最初的想法是,每条规则都将被评估,如果任何规则失败,它都会失败请求,但我发现请求与不匹配的规则仍然成功。有人能解释如何为子集合逐步创建更强的安全规则吗?
以下是我目前的规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
allow write: if request.auth.uid !=
我想问一下,什么是确保Fi还原子集合安全的最佳方法。
这是我的问题:我有一个用户集合,其中有一个名为user id的文档。我还在该文档中收集了一些信息,包括用户id (再次)。有一种简单的方法可以访问每个嵌套在用户文档子集合中的文档吗?
到目前为止,我写了以下文章。我可以访问第一个文档(称为i6mg.但第二个叫DxDt.)
match /users/{user} {
allow read: if resource.data.userId == request.auth.uid;
allow write: if false;
match /wordScores/{doc}
下面是我的消防站数据库
消息子集合如下所示:
下面是我的安全规则。
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