gpt4 book ai didi

firebase - Firestore 安全规则 - 如何使用变量作为字段名称?

转载 作者:行者123 更新时间:2023-12-02 16:36:40 25 4
gpt4 key购买 nike

如果我在 /recordTypeX/{autoKey} 保存了一个文档,其结构如下:

memberUserIds [object]
hjfjkh32390u09j: true
kjsklfjkslfklj3: true
....
skfksdjk2249fks: true
someStringField: "Bork, bork, bork!"
someNumericField: 88

如何编写安全规则来检查某个 memberUserId 是否存在?我已尝试以下操作,但 CLI 不喜欢该语法。

如果resource.data.memberUserIds.$(request.auth.uid) == true则允许读取;

我知道变量可以在具有 get()exists() 的路径中使用,所以我认为使用变量寻址字段也是可能的,但是我无法克服语法错误。这可能吗?

对于一些背景,我试图在集合中的每个文档上维护一个(小)userId 列表,以便我可以执行查询来检索当前用户所属的集合中的所有文档的。

在查看了名为使用列表、集合和数组的指南后,我采用了这种方法,该指南曾经在 Firebase 文档中提供,但似乎已被删除。

感谢您的任何想法。

最佳答案

这是我的火力基础规则之一的示例。

function containsResourceOwnerId() {
// /database/{database}/documents/example/{exampleId}
// exampleDocument => { abc123: true }, request.auth.uid = abc123
return resource.data[request.auth.uid] == true;
}

您应该能够使用以下内容

function isMemberOf() {
return resource.data.memberUserIds[request.auth.uid] == true;
}

并在需要规则的地方使用。

match /teams/{teamsId} {
allow read: if isMemberOf();

关于firebase - Firestore 安全规则 - 如何使用变量作为字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105074/

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