【问题标题】:Firebase Firestore Query using react-redux-firebase使用 react-redux-firebase 的 Firebase Firestore 查询
【发布时间】:2019-04-20 19:26:48
【问题描述】:
service cloud.firestore {
  match /databases/{database}/documents {
    match/projects/{project} {
      allow read: if 
       get(/databases/$(database)/documents/projects/$(project)).data.uid == 
       request.auth.uid;
      allow create: if request.auth.uid == request.resource.data.uid;
      allow update, delete: if request.auth.uid == resource.data.uid;
    }
  }
}

我在这里做查询:

firestoreConnect((props) => { 
  return ([{ collection: 'projects', where: [["uid", "==", props.auth.uid]] }]) 
})

但我收到一个错误:

配置文件侦听器出错:缺少权限或权限不足。 错误:权限缺失或不足。 在新的 FirestoreError (index.cjs.js:402)。

当我使用模拟器在路径中输入文档 ID 进行检查时,我获得了读取权限。 我没有得到我错的地方。也许在查询中。

当我将规则更改为:

allow read : if resource.data.uid == request.auth.uid;

没有错误,显示数据。

为什么它发生是错误或我做错了什么?我知道 Firebase 规则不是过滤器。

【问题讨论】:

    标签: reactjs firebase google-cloud-firestore firebase-security react-redux-firebase


    【解决方案1】:

    您正在单独(并且不必要地)阅读文档,我认为规则引擎无法评估和验证查询永远不会在这种情况下返回不允许的文档。

    试试这个:

    allow read: if resource.data.uid == request.auth.uid;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2019-02-05
      • 1970-01-01
      • 2020-04-04
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多