Firebase Realtime Database Simulator позволяет вам тестировать [READ, SET, UPDATE]
Похоже на работу с объектом Firebase.
FIREBASE DB MODEL - здесь естьyours
{
users:{
-randomID001:{
email:user@email.com,
status:active
},
-randomID002:{
email:user2@email.com,
status:inactive
}
}
}
Попробуйте с разными местоположениями
/users/randomID001 // exists in your DB
/users/randomID002 // exists in your DB
/users/randomID003 // not exists in your DB
CREATE
// newData(json) exists and no randomID001,002 data => FALSE
// newData(json) exists and no randomID003 data => TRUE
".write": "newData.exists() && !data.exists()"
ОБНОВЛЕНИЕ
// newData(json) exists and target(randomID001,002) data exists => TRUE
// newData(json) exists and target(randomID003) data exists => FALSE
".write": "newData.exists() && data.exists()"
DELETE
//You are sending only HTTP DELETE SIGNAL, NOT JSON
//Target(randomID001,002) data exists => TRUE
//Target(randomID003) data exists => FALSE
".write":"!newData.exists() && data.exists()"
Следующий пример позволяет [создавать, обновлять] Вы можете думать как «CREATE || UPDATE || DELETE».
{
"rules": {
"users": {
"$uid":{
".write": "(newData.exists() && !data.exists()) || (newData.exists() && data.exists())"
}
}
}
}
Также рекомендуется проверять правило проверки.
VALIDATION
...
items: {
"$itemId": {
".validate": "newData.hasChildren(['name', 'message', 'timestamp'])",
"name": {
".validate": "newData.val().length > 0 && newData.val().length < 20"
},
"message": {
".validate": "newData.isString() && newData.val().length > 0 && newData.val().length < 50"
},
"timestamp": {
".validate": "newData.isNumber() && newData.val() == now"
}
}
...
Для обслуживания вашего кода, FirebaseБолт это хороший выбор.https://github.com/firebase/bolt/blob/master/docs/language.md