Мне нужно настроить правила Firestore, чтобы этот код вставлял данные только в том случае, если каталог в коллекции «users» равен электронной почте пользователя:
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 "?