如何使用动态路径编写Firestore安全规则?

时间:2019-03-14 15:50:20

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

我的收藏名称为“ omgcollection”,示例文档如下:

{
  "omgcollection": {
    "documentId1": {
      "somekey": "somevalue"
    },
    "documentId2": {
      "somekey": "somevalue"
    }
  }
}

这里我使用uid作为documentId,如何基于$(request.auth.uid)提供对文档的只读访问权限

以下规则不起作用

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if exists(/databases/$(database)/documents/omgcollection/$(request.auth.uid));
    }
  }
}

这是我的代码:

//customToken ~ uid = documentId1
firebase.auth().signInWithCustomToken( < customToken > ).catch(function(error) {
    console.log('auth error :', JSON.stringify(error));
});
var db = firebase.firestore();
db.collection("omgcollection").doc("documentId1")
    .onSnapshot(function(doc) {
        console.log("data: ", doc.data());
    }, error => {
        console.log(error)
    });

此代码返回FirebaseError:缺少权限或权限不足。

0 个答案:

没有答案