2016-06-24 11 views
1

Ich habe das Gefühl, dass mit den Sicherheitsregeln von Firebase 3 etwas nicht stimmt.Sicherheitsregeln verursachen immer "Berechtigung verweigert"

Meine Regeln wie folgt aussehen:

{"rules": 
    { 
    "pages": { 
     ".read": true, 
     "$pageId": { 
     ".read": true, 
     ".write": "root.child('adminUsers').hasChild(auth.uid)" 
     } 
    }, 
    "adminUsers": { 
     ".read": false, 
     ".write": false 
    } 
    } 
} 

firebase.database().ref('/pages/-KL1TmkWWNUYsMqvTw1E').set({slug: 'rule'}) 

habe diesen Fehler ein Seitenobjekt zu set Der Versuch (obwohl /adminUsers/-XXXX = true wo -xxxx ist mein Benutzer-ID):

FIREBASE WARNUNG: set auf/pages/-KL1TmkWWNUYsMqvTw1E fehlgeschlagen: permission_denied

Nach dem Ändern von ".write": "root.child('adminUsers').hasChild(auth.uid)" zu ".write": true funktionierte es. Aber das wollte ich nicht.

Getestet das gleiche mit Regeln Simulator, alles ist in Ordnung. Ich bin verloren.

+2

Können Sie uns zeigen einige Daten von Ihrem Baum so können wir genau sehen, wie es strukturiert ist? Auf der Registerkarte "Datenbank" haben Sie die Option ** nach JSON exportieren **. – adolfosrs

Antwort

0

Dank @adolfosrs ich frage die Db zu JSON

Ich fand zu exportieren, dass ich die userId mit Anführungszeichen wickeln, und es verursacht das Problem

{ 
    "adminUsers" : { 
    "\"9hIokhGbBDfcvdQAPIoM7QcDS3g5\"" : true 
    }, 
    "pages" : { 
    "-KL1TmkWWNUYsMqvTw1E" : { 
     "slug" : "xxx" 
    } 
    } 
}