gpt4 book ai didi

flutter - 通过 Flutter 查询具有基于角色的安全性的 Firestore 文档

转载 作者:IT王子 更新时间:2023-10-29 07:12:48 27 4
gpt4 key购买 nike

根据谷歌的建议,我在 Firestore 上有一个基于角色的数据模型:https://firebase.google.com/docs/firestore/solutions/role-based-access

安全规则设置正确且运行良好。但现在我遇到了如何查询角色的问题。

这是我的数据模型(一个示例文档):

id: "1234-5678-91234",
roles:
userId_1:"owner",
userId_2:"editor
title: "This is a sample document"

这是我在 Flutter 中的 Firestore 查询,如果用户为文档分配了角色“所有者”,它会通过其 ID 获取特定用户的所有文档:

return firestore
.collection(path)
.where("roles.${user.firebaseUserId}", isEqualTo: "owner")
.snapshots().map((snapshot) {
return snapshot.documents.map((catalog) {
return SomeDocumentObject(...);
}).toList();
});

我现在的问题是,我需要某种“OR”子句——据我所知这不存在。上面的查询只检索角色为“owner”的用户的文档< strong>但如果 userId 与角色“editor”相关联,我还需要一个检索文档的查询。

我试过“arrayContains:”,它似乎也不起作用(因为它是一张 map )。

我读过有关包含两个独立查询的解决方案,由于开销很大,这听起来不像是一个好的解决方案。

也许你们中有人对我有提示? :)

谢谢,最好的,迈克尔

最佳答案

Firestore 目前没有任何逻辑或运算。您必须执行两个查询,每个条件一个,然后在客户端应用程序中合并两个查询的结果。

关于flutter - 通过 Flutter 查询具有基于角色的安全性的 Firestore 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988693/

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