Моя структура базы данных:
users
david@gmail.com
records
ApK2DFpG87NDGYutgAVO
pulse: 80
Bryd87NAS20dfDGYtghg
pulse: 78
eva@fb.com
records
A81hxASDKH38dhaj9321
pulse: 93
A82ndasklih38ASD2eda
pulse: 67
и правила:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{email} {
allow create, read, update, delete: if request.auth.token.email == email;
}
}
}
Я бы хотел, чтобы каждый пользователь (например, foo@gmail.com
) мог только читать и записывать данные под этим пользователем (users/foo@gmail.com/**
).
Когда я читаю users/me@gmail.com
на площадке правил (будучи аутентифицированным как me@gmail.com
), я получаю «Имитация разрешена на чтение», как и ожидалось.
Однако, когда я читаю users/me@gmail.com/records
из моего приложения (при аутентификации как me@gmail.com
), я получаю:
FirebaseError: отсутствуют или недостаточные разрешения.
Чего мне не хватает?
Кстати, почему игровая площадка Правила не позволяет читать коллекции (например, users/me@gmail.com/records
)? Там написано:
Путь должен быть на уровне документа