2016-04-15 15 views
0

Ich benutze Firebase mit Java. Ich verwenden, um Daten vonBerechtigung verweigert firebase.push()

firebaseRef.child("users").push().setValue(user); 

hinzufügen, wo meine user Objekt aus User.class mit den folgenden Attributen

String name; 
String id; 

Wenn ich die Validierung der Daten hinzugefügt Eingabe zu akzeptieren, die ID gleich zu einem geheimen Schlüssel hat id === 'secret id' wie folgt

"user": { 
    ".read": true, 
    ".write": true, 
    ".validate": "newData.hasChild('id')", 
    "id": { 
     ".validate": "newData.val() === 'secret id'" 
    } 
} 

es zeigt mir die Berechtigung verweigert, ich habe viele Fälle nach ihrer Dokumentation versucht, aber ich habe dieselbe Berechtigung verweigert
Irgendwelche Vorschläge?

Antwort

1

Problem gelöst, Firebase.push() erzeugt neue id so newData nicht mehr auf sie bezieht, habe ich eine Variable, die ID zu repräsentieren, so dass ich meine Daten normalerweise zugreifen kann

"user": { 
    "$key": { 
     ".read": true, 
     ".write": true, 
     ".validate": "newData.hasChild('id')", 
     "id": { 
      ".validate": "newData.val() === 'secret id'" 
     } 
    } 
} 
Verwandte Themen