我目前是第一次使用Firestore,并试图稍微了解一下安全规则。我现在的问题真的很简单,我可以通过做更多的研究找出答案,但是我想确保自己做对了,所以我认为最好在这里提问。
如果我在Firestore中有两个集合,一个集合称为“ A”,另一个集合称为“ B”,如果我希望仅通过身份验证的用户在A和每个人中读取,写入,更新,删除...,我的安全规则将是什么?可以在B中读取内容,但只有经过身份验证的用户才能在B中进行写入,更新,删除...
编辑: 以下是当前规则,它们将B的规则应用于所有集合:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true;
allow write: if request.auth.uid != null;
}
}
}
答案 0 :(得分:1)
如果您查看documentation on authentication in security rules,则会发现以下规则:
service cloud.firestore { match /databases/{database}/documents { // Allow the user to access documents in the "cities" collection // only if they are authenticated. match /cities/{city} { allow read, write: if request.auth.uid != null; } } }
针对您的用例进行了修改,类似于:
service cloud.firestore {
match /databases/{database}/documents {
match /A/{id} {
allow read, write: if request.auth.uid != null;
}
match /B/{id} {
allow read;
allow write: if request.auth.uid != null;
}
}
}