J'essaie de sécuriser ma nouvelle base de données Firebase.Supprimer le dernier enfant du nœud Firebase
Ma structure:
parentNode
-- child1
-- child2
Je voudrais éviter
- supprimer TOUS les enfants à parentNode (en oubliant de préciser $ clé, écrivant à/parentNode)
I aimerait être en mesure de:
- pousser un nouvel enfant à parentNode (écrit/parentNode)
- supprimer un enfant par clé $ (écrit/parentNode/clé $)
- supprimer l'enfant La dernière parentNode par touche $ (écrit/parentNode/$ key, nettoie firebase automatiquement parentNode parce qu'il est emtpy)
Ma solution actuelle (très basique ...):
parentNode: {
".write": "newData.exists()",
}
Cela empêche toutes les données de suppression du parent, mais aussi empêche la suppression du SEUL enfant parce que ld signifie que le parent n'a plus de nouvelle donnée.
Des pointeurs?
SOLUTION: réponse Frank ci-dessous est le bon. J'ai essayé ceci avant, mais cela n'a pas fonctionné, parce que je n'ai pas fait de variable sur childNode
- puisque je n'avais pas l'intention de l'utiliser.
"parentNode:" {
"childNode": { // <-- This was the problem
".write": "data.exist() || newData.exists()"
}
}
La version correcte:
"parentNode:" {
"$childNode": { // <-- Notice the $
".write": "data.exist() || newData.exists()"
}
}
Firebase a fini par ignorer ma règle parce qu'il n'y existait pas de noeud avec un nom 'childNode'.
Merci! J'ai ajouté quelque chose à ma question initiale pour compléter votre réponse. –