Вот правила для списка объектов. Если вы прошли аутентификацию, вы можете получить доступ ко всему. Если нет, некоторые объекты являются общедоступными, некоторые - нет (логическое публичное свойство). Правило ниже для функции $ object отлично работает, если вы попытаетесь получить доступ к объекту напрямую.Правила базы данных Firebase: доступ к дочерним данным от родителя
"list": {
".read": ???????????? ,
".write": "auth != null",
"$object": {
".read": "auth != null || data.child('public').val() === true",
".write": "auth != null"
}
}
Но мне также нужны правила, чтобы перечислять ТОЛЬКО публичные объекты, если вы не прошли аутентификацию. Как установить правила чтения для свойства сгенерированного ключа $ в его родительском списке? Что-то вроде:
"list":{
".read": "auth != null || data.child('$key').child('public').val() === true"
}
Мэтью объясняет это ниже, но также см. Http://stackoverflow.com/a/14298525/209103 (и, возможно, большинство других вопросов, в которых упоминается волшебная фраза, «правила не являются фильтрами»). –