Невозможно создать правильное правило для подколлекций и ролей Firebase - PullRequest
1 голос
/ 06 января 2020

Я создаю приложение ioni c с интеграцией с Firebase, в котором я создаю раздел сообщений в приложении. Пользователи могут писать посты, такие как Facebook, и любой аутентифицированный пользователь может комментировать посты. Ниже приведен дизайн моей базы данных о том, как я храню данные: все комментарии для конкретного поста. Также postDocument и commentsDocument содержит пользовательский идентификатор Firebase. Я написал правило, в котором любой пользователь может комментировать пост и читать комментарии других, но я хочу правила, в которых пользователь может обновлять свой комментарий, а не другие, а также только владелец поста может удалить комментарий. Проверьте правило ниже. Пожалуйста, помогите мне с тем, что мне не хватает

match /posts/{postId} {
  allow read, write: if request.auth.uid != null;
  match /{comments}/{commentId} {
    allow read, create: if request.auth.uid != null;
    allow update: if ;
    allow delete: if ;
  }
}

1 Ответ

2 голосов
/ 06 января 2020

Проверьте следующее правило для вашего случая

    match /posts/{postId} {
      allow read, write: if request.auth.uid != null;
      match /{comments}/{commentId} {
        allow read, create: if request.auth.uid != null;
        allow update: if resource.data.commentOwnderId == request.auth.uid;//commentOwnderId, firebase uid of the user who wrote the comment
        allow delete: if get(/databases/$(database)/documents/posts/$(postId)).data.postOwnerId == request.auth.uid;//postOwnerId, firebase uid of the user who wrote the post
      }
    }
...