У меня следующая настройка firebase:
- root
- v1
- auth
- "key1" : "value",
- "key2" : "value,
- ...
- config
- announcements
Хочу, чтобы у всего был ".write" :"auth!=null"
И что все читается, кроме auth
, который должен быть ".read" : "auth!=null"
Я пробовал следующие правила, но они не работают!
{
"rules": {
".read": true,
".write": "auth != null",
"v1": {
".read": true,
".write": "auth != null",
"auth": {
".read": "auth != null",
".write": "auth != null"
}
}
}
}
Узел auth содержит пары ключ-значение, при переходе к auth.json он фактически показывает мне данные, хотя он не должен
Я так и думал. Вам действительно нужно добавить такую информацию в свой вопрос, если вы хотите, чтобы люди вам помогали. Просто сказать, что что-то не работает, совершенно бесполезно, потому что это может означать многое. Но если вы хотите что-то подобное, вам придется переписать свои правила по-другому, потому что каскад правил
Ваши правила предоставляют всем доступ для чтения ко всему в вашей базе данных, но затем пытаются отобрать доступ для чтения к более глубокому дочернему узлу. Вы не можете сделать это с помощью правил базы данных реального времени. После того, как вы предоставите доступ для чтения узлу, этот узел и все его дочерние элементы будут постоянно доступны для чтения. В этом случае говорят, что правила базы данных «каскадные». Вы не можете отклонить доступ к дочернему узлу, если любой из его родителей доступен для чтения.
Пожалуйста, прочтите документацию о правилах каскадных баз данных.
Спасибо действительно полезно
Пожалуйста, включите данные и код, которые вы используете для проверки. Также как именно не работают эти правила? (Можете ли вы читать, когда не следует, или наоборот?)