不使用Firebase身份验证时如何编写Firestore数据库安全规则

时间:2019-05-29 12:38:58

标签: android firebase-authentication google-cloud-firestore firebase-security-rules

我想为应用程序使用电话号码和密码验证。 Firebase不提供此类身份验证。因此,通常创建用户集合并实现登录注册流程。

另一件事是,我使用电话号码身份验证进行OTP发送和验证。因此,用户输入可在真实列表中找到。

我从请求中获取了request.resource.data.userUid并检查该userUid是否存在于身份验证列表中。

match /user/{docId} {
allow read, write: if exists(/databases/$(database)/documents/user/$(request.resource.data.userUid))
}

通常从任何表中我们都可以像这样检查。但是我找不到任何访问身份验证列表的方法。

按照我的要求编写安全规则的任何方式还是需要更改身份验证流程?

1 个答案:

答案 0 :(得分:0)

如果您不使用Firebase身份验证,则不能使用安全规则来控制对特定用户的访问。没有其他方法可以验证发出请求的个人的身份。 request.auth在这种情况下将始终为空。

如果您不知道,Firebase Auth会提供phone number authentication。您应该将其与Cloud Firestore一起使用,以有效地实施安全规则。