我想了解基于身份验证的安全规则是多么安全,如下所示:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
我有一些集合,其中每个文档都与特定用户相关。
我只使用Android和iOS手机上的Cloud Firestore,而不是网络。
用户是否有办法在移动应用程序之外进行身份验证,从而读取或写入其他用户的文档?
答案 0 :(得分:8)
如果您想确保用户无法阅读彼此的信息,您应该实施比auth != null
更强的规则。
例如,如果您通过/users/userId
进行身份验证,则这些规则使您只能在userId
读取和写入数据。
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
// Anybody can write to their ouser doc
allow read, write: if request.auth.uid == userId;
}
}
}
这将使某人无法“在我的移动应用程序之外进行身份验证,因此会像您提到的那样阅读或编写其他用户的文档”。