firebase - Check if other node has same child node value -
i'm trying implement validation rule check when new $resvs
created if other $resvs
contains same eventkey
(which child node of object) existing reservations
nodes.
the following code not working, can't come better now:
"reservations": { "$resvs": { ".write": "!data.exists() || newdata.child('eventkey').val() == root.child('reservations/$resvs/eventkey').val()" } }
edit:
firebase.database().ref('/reservations').push({ name: name, number: number, email: email, start: start, end: end, scheduleid: scheduleid, schedulename: schedulename, eventkey: eventkey, placeid: placeid }).then(function(){ $('#calendar').fullcalendar('refetchevents'); //confirmaton first? todo }).catch(function(error){ alert('err'); });
to solve problem, recomand change database structure little bit. instead of using event key
field, try store reservation data directly under event key
. in way can double check, once in code , once using security rules. if want check in code, add listener on reservations
node , use exists()
method on datasnapshot object. in same manner use security rules, because actual database structure it's impossible use wildcards in way want.
your database new structure should this:
firebase-root | --- reservations | --- eventkey1 | | | --- //event1 details | --- eventkey2 | --- //event2 details
but remember, work , if the event key unique
.
hope helps.
Comments
Post a Comment