我想为应用程序使用电话号码和密码验证。 Firebase不提供此类身份验证。因此,通常创建用户集合并实现登录注册流程。
另一件事是,我使用电话号码身份验证进行OTP发送和验证。因此,用户输入可在真实列表中找到。
我从请求中获取了request.resource.data.userUid并检查该userUid是否存在于身份验证列表中。
match /user/{docId} {
allow read, write: if exists(/databases/$(database)/documents/user/$(request.resource.data.userUid))
}
通常从任何表中我们都可以像这样检查。但是我找不到任何访问身份验证列表的方法。
按照我的要求编写安全规则的任何方式还是需要更改身份验证流程?
答案 0 :(得分:0)
如果您不使用Firebase身份验证,则不能使用安全规则来控制对特定用户的访问。没有其他方法可以验证发出请求的个人的身份。 request.auth
在这种情况下将始终为空。
如果您不知道,Firebase Auth会提供phone number authentication。您应该将其与Cloud Firestore一起使用,以有效地实施安全规则。