У меня есть следующая форма базы данныхДоступ запрещен с правилами базы данных Firebase
Database
users
<UID>
user
<other information>
Я пытаюсь прочитать все мои пользователи в режиме администратора и только позволяют отдельным пользователям доступ к своей информации.
Я пытаюсь это правило:
"users": {
"$uid": {
".read": "auth != null && (auth.uid == $uid || root.child('users').child(auth.uid).child('user').child('admin').val() == true)",
".write": "auth != null && !newData.child('admin').exists() && (auth.uid == $uid || root.child('users').child(auth.uid).child('user').child('admin').val() == true)"
},
".indexOn": ["userid"]
},
я делаю следующий запрос, и я вижу следующее сообщение об ошибке:
allusers = $firebaseArray(firebaseDataService.root.child('users'));
permission_denied at /users: Client doesn't have permission to access the desired data.
Любая идея, что я делаю неправильно здесь?
Frank, я не использую правила безопасности для фильтрации данных. Для отдельных пользователей я перехожу к конкретным узлам. Для администраторов я перехожу к/пользователям. Я стараюсь, чтобы только админы могли идти и читать все пользовательские данные, а не кто-либо еще. – Ahsan
Если вы хотите дать администратору доступ к '/ users', для этого нужно' .read' использовать правило '/ users'. –
Не знаю, почему я этого не делал. Работает для меня сейчас, когда я добавил его. благодаря – Ahsan