Я пытаюсь ограничить пользователей своими собственными данными, но в настоящее время данные обмениваются. Я провел некоторые исследования ( SO Вопрос , Документы Firebase ), но они не сработали для меня. Я мог бы пропустить решение.
Правила БД:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
match /{document=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
}
Данные БД:
users: [{
{userId}: {
email: "...",
fullName: "...",
uId: "..." // same as key
tasks: [{
{unique taskId}: {
id: "...", // same as key
desc: "...",
priority: 3,
completed: false
}
}]
}
}]
Запрос данных (угловой):
this.afStore
.collection(`users`)
.doc(`${this.authService.getUserId()}`)
.collection(`tasks`, ref => {
return ref
.where('completed', '==', completed)
.orderBy(sortField, sortOrder);
}).snapshotChanges().pipe(
...
);
Это проблема правил или проблема с данными / запросами? Я думаю, что я упускаю что-то незначительное с правилами ...