Правила Firebase: разрешить отправку, но не разрешить обновление

Я изо всех сил пытаюсь понять, как я могу разрешить пользователям создавать новые записи в списке, но только разрешить создателям обновлять свои собственные сообщения.

Например. следующую структуру:

post {
    post1: {
        author: "user1"
        text: "Some text"
    }
    post2: {
        author: "user2"
        text: "Some text 2"
    }
}

Здесь я хочу, чтобы оба пользователя могли создавать новые сообщения. Но также защитите, скажем, post2 от редактирования пользователем1. Таким образом, только пользователь 1 может редактировать сообщение 1 и только пользователь 2 может редактировать сообщение 2.


person Daniil Andreyevich Baunov    schedule 18.01.2017    source источник


Ответы (1)


Вы хотели бы сделать что-то вроде этого:

{"rules": {
  "post": {
    "$id": {
      ".write": "auth !== null && (!data.exists() || data.child('author').val() === auth.uid)"
    }
  }
}}

Здесь вы разрешаете запись только в том случае, если пользователь вошел в систему и а) узел, который пытается записать, пуст или б) узел, который пытается записать, был создан текущим пользователем.

person Michael Bleigh    schedule 18.01.2017