我想设置我的Firebase Rulse。我要根据他们所在的地区和我的District注册到我的firestore数据库中的用户。因此,当用户要注册但该用户未登录应用程序时,我要设置我的规则,例如任何人都可以阅读District集合,而其他集合必须是身份验证
所以我设置了这样的规则是正确的吗?
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
match /District/{document=**} {
allow read :if true;
}
}
}
首先,您应该熟悉规则控制台的模拟功能。它使您可以手动直接测试特定方案,以探索规则中正在发生的事情。
第二,Firebase提供了一种使用仿真器写入tests for security rules的方法。这是一种很好的做法,可确保您拥有一套全面的测试,随着应用程序复杂性的增加,这些测试可重复进行。
最后,请注意,即使有了这套规则,您也已经为任何经过身份验证的用户提供了数据库的全部权限-他们可以无限制地从字面上读取或写入任何数据。例如,这将包括删除整个/ District集合。这对于您的用例可能是可接受的,也可能是不可接受的,但是您应该非常仔细地考虑选择。请记住,公共用户仅在遵守安全规则授予的权限的情况下,才能对您的数据库运行任意代码。