用于显示特定用户数据的Firestore安全规则

时间:2019-07-01 16:40:10

标签: reactjs firebase-security-rules

我是Firestore的新手,我正在尝试为我的应用编写安全规则。 我有两个集合,一个是“用户”,其中包含在注册过程中存储的数据,例如名字,姓氏,电子邮件和通过Firebase Auth自动生成的用户uid。 第二个集合是项目集合,其中包含从firebase.profile属性(authorfirstname,authorlastname和authorID)提取的数据字段,例如标题,描述,日期和凭证。 ' 现在,当用户注册时,他可以看到所有项目(由任何人创建)。安全规则是-

  match /databases/{database}/documents {
    match /projects/{project} {
      allow read, write: if request.auth.uid != null
    }
    match /users/{userId}{
        allow create
        allow read: if request.auth.uid != null
        allow write: if request.auth.uid == userId
        }
  }
}

我想更改规则,以便用户可以读取(显示)和修改由他们而不是其他用户创建的项目。

我尝试将安全规则更改为-

  match /databases/{database}/documents {
    match /projects/{project} {
      allow read, write: if request.auth.uid == userId;
    }
    match /users/{userId}{
        allow create
        allow read: if request.auth.uid == userId
        allow write: if request.auth.uid == userId
        }
  }
}

这导致登录时没有任何项目显示,并且也出错- FirebaseError:缺少权限或权限不足。     在新的FirestoreError处

我还尝试将安全规则更改为此-

  match /databases/{database}/documents {
    match /projects/{project} {
      allow read, write: if request.auth.uid == resourse.data.authorID;
    }
    match /users/{userId}{
        allow create
        allow read: if request.auth.uid == userId
        allow write: if request.auth.uid == userId
        }
  }
}

这给了我相同的结果,即没有显示任何项目,也出现了相同的错误。

0 个答案:

没有答案
相关问题