Firebase规则:查询集合时如何访问文档ID

时间:2020-05-11 21:55:01

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

我坚持使用这个,请帮忙?

我有一个像这样的firebase文档:

"789" : { 
    slug: "document-slug-name",
    owner_uid: "123",
}

具有一个称为“角色”的子集合,如下所示:

"345" : {
    permission_type: 1,
}

现在我正在查询这样的文档:

const snapshot = await firebaseApp.firestore()
    .collection("documents")
    .where("owner_uid", "==","123")
    .where("slug", "==", "document-slug-name")
    .limit(1)
    .get()

const document = snapshot.docs[0]

我的规则如下:

match /documents/{documentId} {
  allow list: if
    get(/databases/$(database)/documents/documents/$(documentId)/roles/$(currentUser().uid)).permission_type == 1;
}

但是由于某种原因,规则模拟器和实际的Firebase数据库都告诉我未设置documentId吗?

我也尝试过resource.data.uid和resource.id来获取文档ID,但是都没有设置:(

还有其他方法可以查询角色子集合吗?

0 个答案:

没有答案