Las reglas de la base de datos de Firebase no funcionan

Estoy utilizando la base de datos en tiempo real de Firebase para mi aplicación web. Tengo un nodo en la base de datos llamada Usuarios que se parece a esto:

Users{ userID{ Name Post Type AutoRefresh Uploads{ upload1 upload2 } News{ news1 news2 } Friends{ friend1 friend2 } Requests{ req1 req2 } } } 

He establecido las siguientes reglas de base de datos para este nodo:

 { "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')" } } } 

El problema es que cuando bash escribir algo de valor en la ubicación Usuarios / ID de usuario / Actualización automática de mi aplicación web, aparece el siguiente error:

 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) 

Estoy usando el siguiente código para realizar la operación de escritura:

 firebase.database().ref().child('Users/' + userID + '/AutoRefresh').set('Off').then(function(){ //Do something }); 

Cuando pruebo esta operación de escritura en el simulador de la consola Firebase, escribe perfectamente el nuevo valor en el nodo AutoRefresh . ¿Por qué no funciona en la aplicación? ¿Estoy haciendo algo mal?

Este problema ocurrió después de aplicar las reglas. Antes de aplicar las reglas, funcionaba perfectamente.