【发布时间】:2019-06-28 13:37:21
【问题描述】:
在 Firestore 规则中使用什么实际正确条件来限制只有经过身份验证的用户才能访问? official docs 和这里的几个答案说你应该使用request.auth.uid != null。我过去使用过它,它似乎可以工作,但最近当我在模拟器中测试其他一些规则时,我注意到当请求未经身份验证时,它会在这种情况下抛出 Null value error。
如果是这种情况,request.auth != null 似乎是您应该使用的实际条件,因为它在模拟器中的行为似乎符合预期。
这是模拟器与规则的实际行为之间的差异吗?如果模拟器是正确的,我假设request.auth.uid != null 条件仅“有效”,因为默认行为是在条件出现错误时拒绝访问。另一种选择是模拟器是错误的,request.auth 在实际使用数据库时永远不会是null。
这是什么?
【问题讨论】:
-
你为什么说指示的问题在实践中不起作用?
-
@AlexMamo 我这么说是因为它似乎表明情况确实如此,而我自己没有进行全面测试的更改。但是,我已经测试过,它似乎确实有效,并且文档和大多数答案实际上都是错误的。
-
他们更新了文档(至少是示例),更喜欢 request.auth != null。
标签: firebase google-cloud-firestore firebase-security firebase-console