了解Firebase Firestore规则

我想设置我的firebase rulse。我想根据用户所在的地区以及存储在我的Firestore数据库中的 District 注册用户。因此,当用户要注册但该用户未登录该应用程序时,我要设置我的规则,例如任何人都可以阅读 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;
      }
    }
  }
zhibudao 回答:了解Firebase Firestore规则

规则应按照您的建议进行操作-允许未经身份验证的读取/District中的任何内容,并允许经过身份验证的用户读取和写入整个数据库。

不过三件事:

首先,您应该熟悉规则控制台的simulation ability。它使您可以直接手动测试特定方案,以探索规则中正在发生的事情。

第二,Firebase提供了一种使用仿真器编写tests for security rules的方法。这是一种很好的做法,可确保您拥有一套全面的测试,随着应用程序复杂性的增加,这些测试可重复进行。

最后,请意识到,即使有了这套规则,您也已经为任何经过身份验证的用户提供了数据库的全部权限-他们可以无限制地从字面上读取或写入任何数据(这肯定是not a recommended configuration)。例如,这将包括删除整个/District集合。这对于您的用例可能是可接受的,也可能是不可接受的,但是您应该非常仔细地考虑选择。请记住,用户仅需遵守安全规则授予的权限,即可对您的数据库运行任意代码(而不仅仅是客户端应用程序的代码)。

本文链接:https://www.f2er.com/3086206.html

大家都在问