Esb*_*ald 9 firebase-security google-cloud-firestore
您能否制定运行查询以检查是否找到匹配文档的安全规则?
我正在构建一个系统,登录用户可以在其中对特定主题进行投票。
每一个投票都将保存在自己的文档中,其中包含对用户、主题等的引用。
我想制定一个安全规则,检查投票部分中是否已经存在具有该特定用户 ID 和主题 ID 的文档,并且只让用户编写投票文档,但事实并非如此。
我在文档中看不到任何查询选项,那么我的选项是什么?
我可以以某种方式创建所有投票的索引,并在该索引中查找特定的文档路径吗?
或者我应该根据用户 ID 和主题 ID 给投票一个自定义 ID 方案,以便可以找到它们?
您不能使用带有安全规则的条件执行查询。您所能做的就是get()使用其已知路径的文档。也就是说,您必须知道它的所有集合和唯一标识它的文档 ID。
听起来创建其他文档可能是可行的(它们不必包含任何数据),并且它们的存在可以表示您想要保护的条件。
(是的,有时数据建模必须考虑安全规则。)
对于那些仍然感兴趣的人来说,这种情况现在已经改变了。
请参阅https://firebase.blog/posts/2022/09/announcing-cross-service-security-rules/
您现在可以使用这些功能firestore.get()并firestore.exists()查询安全规则内的数据库。
然而,即使请求被拒绝,这些函数也会产生额外的读取。
| 归档时间: |
|
| 查看次数: |
2114 次 |
| 最近记录: |