Я все еще работаю над своими правилами, но надеюсь, что это поможет.
Если вы пытаетесь убедиться, что пользователь редактирует что-то свое, и его uid
совпадает с document id
....
function isOwner(userId) {
return request.auth.uid == userId
}
match /users/{userId} { //this is the document
allow write: if isOwner(userId);
}
Если вы пытаетесь убедиться, что они являются создателями документа:
match /equipment/{documentId} {
allow create: if request.auth.uid != null;
allow read, update: if get(/databases/$(database)/documents/equipment/documentId).data.userId == request.auth.uid;
}
https://firebase.google.com/docs/firestore/security/rules-conditions?authuser=0
Вам нужно использовать функцию get для извлечения интересующего вас документа. Эта функция возвращает данные, имеющие связанные поля, с которыми вы можете сравнивать, в данном случае с любым именем поля, в котором вы сохранили идентификатор пользователя, чтобы вы могли сравните это с их auth.uid
.