Firebase Правило для значения первого ребенка - PullRequest
0 голосов
/ 29 марта 2020

Как я могу написать правило Firebase, которое ссылается на значение первого (и только если, если это помогает) дочернего элемента новых данных? Например: Данные

{
    "aaa": "bbb"
}

Правило

".write": "newData.children[0].val() === auth.uid"

Очевидно, это не работает. Как правильно это сделать?

1 Ответ

0 голосов
/ 29 марта 2020

Насколько я понимаю, правила безопасности Firebase RTDB скомпилированы по соображениям производительности. Этот стиль динамических ссылок не будет работать. Не существует понятия length, но вместо этого просто существует, не существует, а также текущие и новые значения.

Допустим, у вас есть следующие данные:

"path/to/data": {
  "aaa": "bbb"
}

Пока есть в правилах безопасности для RTDB нет способа ограничить количество детей (самостоятельно), вместо этого вы можете go на один уровень глубже применить желаемое ограничение.

"path": {
  "to": {
    "data": {
      "$anyValue": {
        ".write": "newData.val() === auth.uid"
      }
    }
  }
}
...