gpt4 book ai didi

javascript - Firebase 规则 : Problem with role based authentication in groups and . 其中()

转载 作者:行者123 更新时间:2023-12-01 00:48:56 25 4
gpt4 key购买 nike

我正在尝试保护用户可以管理其乐队的应用程序。用户可以属于多个乐队,因此可以根据他们所在的乐队拥有不同的 Angular 色。 Angular 色存储在乐队文档中的映射字段中。

我目前有以下 firebase/firestore 规则设置:

service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}

match /bands/{bandID}{
function isBandAdmin(userID){
// Determine if user is a band admin
return get(/databases/$(database)/documents/bands/$(bandID)).data.members[userID].role == 'Admin';
}

allow read, update, create: if isSignedIn() && isBandAdmin(request.auth.uid);

// Rules for a band's concerts
match /events/{event}{
allow read, update, create: if isSignedIn() && (isBandAdmin(request.auth.uid));
}
}
}

现在,如果我在 firebase 控制台提供的模拟器中执行 get 请求,则效果非常好。但在我的项目中,我试图执行以下请求:

database.collection("bands").where("name" ,"==", "AC/DC").get().then((docs) => {...});

这给了我一个权限错误。我怎样才能做到这一点?

PS:我已经发布了类似的问题,但这是一个重要的更新。

最佳答案

您似乎期望安全规则应该过滤查询中与某些用户 Angular 色匹配的文档。这是行不通的,因为 security rules are not filters 。请仔细阅读链接的文档。

当您对多个文档执行查询时,安全规则应该明确允许获取所有这些文档。它不会单独查看每个文档来确定是否允许阅读。如果规则系统确定任何一个文档可能不被允许,那么整个查询就会失败。

关于javascript - Firebase 规则 : Problem with role based authentication in groups and . 其中(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57144019/

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