В настоящее время я смотрю FireBase и использую плагин AngularJS, и обнаружил следующую проблему, от которой не могу избавиться.
В настоящее время я внедрил простую систему входа в систему. Авторизовавшись со своей почтой и паролем после регистрации, я создаю такой пост:
post = {
name: "Hi",
message: "Guys",
user_id: Auth.user.id // for my current user this is 1
}
posts.$add(post)
С этого момента все в порядке. Теперь то, что я хотел сделать, это то, что в сообщениях / конечной точке на firebase я хочу отображать только сообщения пользователя, который в данный момент вошел в систему.
Другие пользователи могут читать чужие сообщения, имея общедоступную логическую переменную (но это на потом)
Я смотрел API безопасности Firebase (см .: https://www.firebase.com/docs/security/security-rules.html) Сейчас у меня есть:
{
"rules": {
"posts": {
"$post": {
".read": "data.child('user_id').val() == auth.id",
".write": "(data.child('user_id').val() == auth.id) || (newData.child('user_id').val() == auth.id)"
}
}
}
}
В определенной степени это работает, я могу писать сообщения, только если я авторизован, но я не могу читать никакие сообщения!
posts = new Firebase(base + '/posts')
posts = $firebase(posts)
Ошибка: FIREBASE WARNING: on () или once () для / posts не удалось: Ошибка: permission_denied: у клиента нет разрешения на доступ к нужным данным.
Если у кого-то есть решение, это было бы здорово!