我正在尝试为我的Firebase项目找到最佳安全规则,该规则应允许任何用户(没有帐户的用户)读取数据,但阻止该用户写入。此外,该规则还必须允许已登录的用户读写。
P.S。我目前的规则已经执行了,但是firebase每天抱怨说我的规则不安全,可能会增加费用。那么安全地实现我想要的最好的规则是什么? 这是我目前的规则。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read : if true;
allow write : if request.auth.uid != null;
}
}
}
答案 0 :(得分:1)
问题是Firebase无法确定您是否完全了解任何经过身份验证的用户实际上可以编写整个数据库。这是一个常见的错误-人们常常不了解像这样在根级别使用通配符的含义。
您应该做的是消除通配符,并调出每个特定的集合以为其赋予所需的特定权限。这样可以清楚地表明,您不会盲目地为整个事物分配完全权限。