我已经非常彻底地搜索了此内容,但遗憾的是找不到任何有用的答案,或者根本找不到任何答案。基本上,这是您阻止陌生人,未通过身份验证或另一个用户访问Cloud Firestore中某人文档的方式:
match /collection/{userId} {
allow write: if request.auth != null && request.auth.uid == userId;
}
但是在那之后,我们还有更复杂的规则,例如:
allow write: if (above snippet) && request.resource.data.write_variable == 1;
那很棒,因为即使Firestore是noSQL,无shema数据库,我们也可以为write
操作甚至read
操作设置一些标准。在我的情况下,我想要的是允许用户在满足以下条件的情况下写文档:
userId
与它的uid
相同。这意味着他只能访问他的文档。write
(即我文档中的一个字段)等于1 OR 等于5,则允许write_variable
。这就是我似乎找不到or
的运算符的问题。是||
,|
还是其他东西。我无法真正测试,因为我无法弄乱已经运行的应用程序,因此请直接回答(是否可以,如果可以,怎么办?)。提前致谢!
答案 0 :(得分:2)
Firebase安全规则中的逻辑OR运算符与您期望的完全一样:||
。所有处理布尔值的运算符都记录在here中。
答案 1 :(得分:1)
firebase控制台中有一个非常有用的工具Simulator
-您可以在保存之前测试规则-无需担心现有代码。对于or
运算符,就是这样:
`||`