【发布时间】:2021-10-27 21:18:16
【问题描述】:
我想检查用户的用户名和电话号码是否唯一。我已经使用
FirebaseFirestore.getInstance().collection("Users").whereEqualTo("phone",ph).get().addOnCompleteListener(...);
这是我的 Firestore 规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: true;
allow write: if request.auth.uid != null;
}
match /Users/{userID} {
allow update: if request.auth.uid == userID
&& (request.resource.data.username == resource.data.username
|| isUserNameAvailable(request.resource.data.username)
);
}
}
代码运行良好,没有问题。我在 signInWithCredential 方法之前检查这个,因此 request.auth.uid 将始终为空。要使代码正常工作,必须保留allow read: true;
但是,现在我收到了这个警告
我们检测到您的安全规则存在以下问题: 任何用户都可以读取您的整个数据库
有什么办法可以防止这种情况发生吗?
【问题讨论】:
标签: android firebase google-cloud-firestore firebase-security