Я использую База данных Firebase в реальном времени для моего веб-приложения. У меня есть узел в базе данных с именем Users , который выглядит следующим образом:
Users{
userID{
Name
Post
Type
AutoRefresh
Uploads{
upload1
upload2
}
News{
news1
news2
}
Friends{
friend1
friend2
}
Requests{
req1
req2
}
}
}
Я установил следующие правила базы данных для этого узла:
{
"rules": {
"Users": {
".read": "auth != null",
"$userID": {
".write": "auth.uid === $userID && !newData.hasChild('Post') && !newData.hasChild('Type') && !newData.hasChild('Friends') && !newData.hasChild('Requests') && !newData.hasChild('Uploads') && !newData.hasChild('News')"
}
}
}
Проблема в том, что когда я пытаюсь записать какое-либо значение в папку Users / userID / AutoRefresh из моего веб-приложения, я получаю следующую ошибку:
Uncaught (in promise) Error: PERMISSION_DENIED: Permission denied
at Repo.js:510
at Object.t.exceptionGuard (util.js:536)
at e.callOnCompleteCallback (Repo.js:501)
at Repo.js:278
at PersistentConnection.js:402
at t.wt (PersistentConnection.js:435)
at e.wt (Connection.js:262)
at e.ln (Connection.js:256)
at t.onMessage (Connection.js:157)
at t.Wn (WebSocketConnection.js:197)
Я использую следующий код для выполнения операции записи:
firebase.database().ref().child('Users/' + userID + '/AutoRefresh').set('Off').then(function(){
//Do something
});
Когда я тестирую эту операцию записи в симуляторе консоли Firebase, он прекрасно записывает новое значение в узел AutoRefresh . Почему это не работает в приложении? Я что-то не так делаю?
Эта проблема возникла после применения правил. До применения правил он работал отлично.