Вам необходимо изменить свои правила следующим образом:
service cloud.firestore {
match /databases/{database}/documents {
match /userPrivate/{user} {
allow read, write: if request.auth.uid == user;
}
}
}
Ваш шаблон должен указывать на документ с одним путем (что вы и получаете, делая {user}
), ине совпадает ни с одним документом из коллекции userPrivate
(что вы и получаете, делая {user=**}
, другими словами "остальную часть пути").
В случае, если вы хотите разрешить пользователюДля чтения / записи всех документов, включенных во вложенные коллекции документов user
с одинаковым уровнем безопасности, будет действовать следующее правило:
service cloud.firestore {
match /databases/{database}/documents {
match /userPrivate/{user} {
allow read, write: if request.auth.uid == user;
match /{userCollec=**} {
allow read, write: if request.auth.uid == user;
}
}
}
}
Я бы посоветовал вам посмотреть это официальное видео Firebase в Firestoreправила безопасности: https://www.youtube.com/watch?v=eW5MdE3ZcAw&, в частности, часть начинается с 5 минут.