【发布时间】:2020-07-26 19:25:43
【问题描述】:
我必须设置 Firestore 规则,即只有当“用户”集合中的目录等于用户的电子邮件时,此代码才应插入数据:
FirebaseAuth mAuth = FirebaseAuth.getInstance();
String email = mAuth.getCurrentUser().getEmail()
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("users").document(email).set("Important data");
现在我有以下规则,允许在任何地方进行任何阅读和写作(如果用户被授权):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
如您所见,我的 Firestore 具有以下结构:
Firestore-root
|
--- users (collections)
| |
| --- email: mymail@google.com(document)
| |
| --- Data
| --- email: othermail@google.com(document)
| |
| --- Data2
...
--- messages (collections)
| |
| --- email: mymail@google.com(document)
| |
| --- message
| --- email: othermail@google.com(document)
| |
| --- message2
如果用户“mymail@google.com”试图读取“othermail@google.com”的数据,我们如何拒绝访问?
【问题讨论】:
标签: android firebase google-cloud-firestore firebase-security