Я пытаюсь эти правила безопасности из документации (https://firebase.google.com/docs/database/security/quickstart#sample-rules):Firebase Правила безопасности Private User Data
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
Я хочу, чтобы пользователь мог читать и писать их узел под пользователей и не никто другой могут получить доступ к их информации.
Моя структура данных выглядит следующим образом: Под пользователями я храню информацию о пользователях под их UID.
myfirebase
users
-<facebookUID>
->user info stored here
-<facebookUID>
->user info stored here
-<facebookUID>
->user info stored here
В моем коде я запрос к базе данных с помощью:
var userinformation = firebase.database().ref("users/" + <facebookUID>).on("value",function(snapshot) {
//...do stuff here
});
В тренажере это работает, если я запрашиваю узел: «пользователей /» + facebookUID
но когда я запускаю код ничего не возвращает ,
Так что я предполагаю, что это что-то связано с правилами безопасности, не может быть фильтром или чем-то еще .... вроде бы, потому что у меня нет правил доступа/пользователей, доступ к их узлу возвращает false, и доступ запрещен. Но если я разрешаю доступ к пользователям, то из-за каскада каждый может получить доступ к чужим данным.
Так как я могу это исправить?
Я пробовал смотреть на вопросы других, но не могу это исправить.
UPDATE - Некоторые фотографии
Местоположение, к которому вы обращаетесь, кажется прекрасным. Вы не пытаетесь фильтровать данные, поэтому в отличие от того, что вы нажимаете «правила не фильтры», о которых вы говорите.Но откуда взялось ''? Вы уверены, что он был инициализирован при подключении слушателя? –
Спасибо за помощь. Слушателем вы имеете в виду вызов .on? Это должно быть хорошо, потому что, когда для .read и .write установлено значение true в корне, код работает нормально, и у меня есть доступ. Неплохо добавить несколько фотографий в исходное сообщение –
@FrankvanPuffelen, если у вас есть шанс, что вы можете разблокировать этот https://github.com/rhroyston/firebase-auth и добавить метод «администрирования администратора» в нижней части файла .js (он действительно помог бы мне, и я думаю, что другие?) Ты мужчина. ... Кстати, это единственный способ, которым я знаю, чтобы связаться с вами. Надеюсь, вы не против. Что-то вроде approveUser (uid, 'gold')/approveUser (uid, 'bronze'). многоуровневый администратор? –