如何完美使用Firestore安全规则

时间:2019-07-08 06:40:12

标签: firebase google-cloud-firestore firebase-security-rules

我阅读了文档并观看了有关此的视频 但仍不能完全理解

我的意思是我知道如何编写这些安全规则 但是我应该什么时候使用呢? 我必须为所有馆藏和文件写出所有安全规则吗? (如果这样做,它将会很大)

例如,我正在制作随机约会应用。 在我的情况下,我认为除非担心支付系统,否则我不会那么担心安全性。 如果我没有为所有文档设置安全规则,那么所有这些文档是否有危险? (无抵押的)

2 个答案:

答案 0 :(得分:0)

逐步进行操作,您将知道如何使用规则this

基本规则

我们针对图像共享应用程序Fogo的Firestore安全规则如下:

service cloud.firestore {
  match /databases/{database}/documents {
    match /uploads/{document=**} {
      allow write: if request.auth.token.admin == true ;
      allow read;
    }
​
    match /users/{document=**} {
      allow read, write: if request.auth.token.admin == true ;
    }
  }
}

让我们逐行细分这些规则。

service cloud.firestore —定义服务,在这种情况下为cloud.firestore

match /databases/{database}/documents —定义数据库; {database}子句表明这些规则适用于项目上的所有Firestore数据库

match /uploads/{document=**} —创建一个新的规则块,以应用于上传集合及其中包含的所有文档

allow write: if requests.auth.token.admin == true ;-允许对具有auth令牌上的admin属性等于true的admin属性的经过身份验证的会话进行写访问,这也称为用户的JWT

allow read;-允许公共读取权限

match /users/{document=**}-为用户集合及其中包含的所有文档创建一个新的规则块。

允许读写:if request.auth.token.admin == true; -允许通过auth令牌上的admin属性等于true的经过身份验证的会话进行读和写访问,这也称为用户的JWT

答案 1 :(得分:0)

除非您希望互联网上的任何人都能够读取和写入数据库中的任何文档,否则您将需要使用安全规则来保护它们。这是否对您来说将是一个问题,这是无法确定的。但是可能性存在。