2017-10-01 1 views
0

Ich versuche eine Validierungsregel zu erstellen, die sicherstellt, dass die in 'user_post' geschriebenen Daten konsistent mit den in 'user_profile' gespeicherten Daten sind. Meine Regel ist wie folgt:Firebase-Echtzeit-Datenvalidierungsregel

"user_post":{ 
     ".read":true, 
     ".write":true, 
     "$posts":{ 
      "location_id":{".validate":"newData.child('location_id').val() === root.child('user_profile').child(auth.uid).child('location_id').val()"} 
     } 
    } 

verhindert jedoch die Regel eine Schreib trotz location_id in ‚user_profile‘ & ‚user_post‘ ist das gleiche.

Was mache ich falsch?

+0

Err ... Was ich versuche zu erreichen, ist schreiben schreiben, wenn die 'location_id' in beiden 'user_profile' & 'user_post' identisch ist. Wenn sie nicht identisch sind, ist das Schreiben nicht erlaubt. –

+0

schlägt der Schreibvorgang fehl. Es sollte nicht fehlschlagen, da die Validierungsregel zu einem echten Ergebnis führt –

Antwort

0

Es sollte newData.val() == root... sein, weil die Art und Weise Sie es geschrieben Sie das Kind von locationid werden überprüft, aber Sie wollen tatsächlich locationid.