У меня есть ниже данные, которые хранятся в моем firebase
:firebase разрешения безопасности не работает
firebaseRoot
admins
simplelogin:1:
users
simplelogin:1
email: [email protected]
picture: csd
provider: password
uid: simplelogin:1
simplelogin:2
email: [email protected]
picture: zsd
provider: password
uid: simplelogin:1
и следующие правила безопасности:
{
"rules": {
"admins": {
".read": "root.child('admins').child(auth.uid).val() === true",
".write": "root.child('admins').child(auth.uid).val() === true"
},
"users": {
"$user":{
".read": "$user === auth.id || root.child('admins').child(auth.uid).val() === true",
".write": "$user === auth.id"
}
}
}
}
Мои требования авторизации, как показано ниже.
- Администраторы могут быть прочитаны и добавлены только существующим администратором. Это работает.
- Все пользователи могут быть прочитаны администратором, но не могут писать данные пользователя.
- пользователь может читать и обновлять свои пользовательские данные.
В настоящее время с приведенными выше правилами я не могу читать данные пользователей как для администраторов, так и для пользователей. Я получаю ниже сообщения об ошибке. Пожалуйста, предоставьте свою помощь. Благодарю.
var rootRef = new Firebase('https://xxxxx.firebaseio.com/');
var users = rootRef.child('users');
users.on('value', function(snap) {
console.log(snap.key(), snap.val());
}, function(error) {
console.log(error);
});
Ошибка:
Error: permission_denied: Client doesn't have permission to access the desired data.
Спасибо Frank. Я почти отказался от безопасности бомбы. Я снова и снова читал документацию по правилам безопасности, но я не мог получить ее полностью, но ваш ответ заставляет меня понять, насколько прост и изящный. Я просто не могу поблагодарить! – Ajay
Добро пожаловать. Мы знаем, что оба они не интуитивно понятны, но особенно это # 2 иногда усложняет реализацию функций, чем нам бы хотелось. Но пока все, что мы можем сделать, это объяснить. Продолжайте взломать и продолжайте спрашивать! –