google-cloud-firestore - Firestore安全规则-我可以查询具有特定字段的文档吗?

标签 google-cloud-firestore firebase-security

您可以制定运行查询以检查是否找到匹配文档的安全规则吗?

我正在构建一个系统,登录的用户可以对特定主题进行投票。

每次投票都将保存在自己的文档中,并带有对用户,主题等的引用。

我想制定一个安全规则,检查投票部分中是否已经存在包含该特定用户ID和主题ID的文档,并且仅允许用户编写一个投票文档(事实并非如此)。

我在文档中看不到任何查询选项,那么我有哪些选择?

我可以以某种方式创建所有投票的索引,并在该索引中查找特定的文档路径吗?

还是应该根据用户ID和主题ID为投票提供一个自定义ID方案,以便可以找到它们?

最佳答案

您不能在具有安全规则的条件下执行查询。您所能做的就是使用已知路径对文档进行get()。也就是说,您必须知道其唯一标识的所有集合和文档ID。

听起来创建其他文档(它们不必包含任何数据)可能是可行的,并且它们的存在可以表明您想要保护的条件。

(是的,有时数据建模必须考虑安全规则。)

关于google-cloud-firestore - Firestore安全规则-我可以查询具有特定字段的文档吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136614/

相关文章:

node.js - FireStore 如果不存在则创建一个文档

firebase - 将文件上传到 Firebase 云存储时出错 : "Listing objects in a bucket is disallowed for rules_version = 1"

javascript - Firebase:初始化由集合组成的树

swift - Firebase 计划推送通知

android - firebaseUI 依赖项与 firebase 版本 15.0.0 不匹配

firebase - 如何为 Firestore 中的不同字段组合创建索引?

firebase - Firebase 读/写/验证规则对性能有何影响?

firebase - 在 Firebase 存储中公开文件夹

java - "java.lang.IllegalArgumentException "尝试检索文档数据

android - 云 Firestore : retrieving cached data via direct get?