gpt4 book ai didi

如果子集合中存在用户电子邮件,则使用 firebase 规则

转载 作者:行者123 更新时间:2023-12-04 10:01:15 24 4
gpt4 key购买 nike

我正在尝试从 clans 集合中检索文档,其中 docid 是氏族名称,但我想确保只能检索用户所在的氏族。

clans 集合包含以 clanname 作为 id 的文档,以及包含以用户电子邮件作为 doc id 的文档的成员子集合。

clans (collection) => clanname (document) => members (collection) => member(document)

我如何检查氏族以确保 request.auth.token.email 是 members 子集合中的文档

我想我需要让成员等于 request.auth.token.email 但不确定在规则中的什么位置。

      firebase
.firestore()
.collection("clans")
.doc(clanName)
.get()
.then(clan => {
this.clan = clan;
});


match /clans/{clanName} {
allow create;
allow read: if exists(/databases/clans/documents/{clanName}/members/{member});
}

members 子集合将包含多个以用户电子邮件作为 documentId 的文档。

最佳答案

您需要使用 documentation 中描述的语法构建文档的正确路径(我确实建议仔细阅读)。我建议使用用户的 UID,因为这是唯一标识帐户的最佳方式:

allow read: if exists(/databases/$(database)/documents/clans/{clanName}/members/$(request.auth.uid))

如果您必须使用电子邮件,我强烈建议避免此类安全规则,因为您以后可能会遇到问题:

allow read: if exists(/databases/$(database)/documents/clans/{clanName}/members/$(request.auth.token.email))

关于如果子集合中存在用户电子邮件,则使用 firebase 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com