Firebase mise à jour ou jeu
Après l'ajout d'un post au sujet d'une personne à une Firebase base de données, je veux ajouter la référence pour le nouveau poste de la personne. Toutefois, la personne peut ou ne peut pas déjà exister.
J'ai:
var ref = new Firebase("https://mydatabase.firebaseio.com/");
var _person = document.getElementById("Person").value;
var _remark = document.getElementById("Remark").value;
var postsRef = ref.child("remarks");
var newPostRef = postsRef.push({
person: _person,
remark: _remark
});
var postID = newPostRef.key();
var personRef = ref.child("person");
personRef.update({
_person: postID
});
Cependant qui crée un nœud appelé _person de l'enfance personne au lieu de la valeur de la _person variable. À l'aide de set() serait de remplacer une personne existante.
Exemple:
D'abord un nœud remarques/-JlkbxAKpQs50W7r84gf est créé avec nœud enfant personne/123456
Après que j'ai envie de créer un nœud personne/123456 (seulement si il n'existe pas déjà) et que d'ajouter un nœud enfant remarque/-JlkbxAKpQs50W7r84gf. L'après-id est généré automatiquement (Firebase) mais la carte est à partir d'un formulaire html.
Comment dois-je faire?
OriginalL'auteur user1837293 | 2015-03-31
Vous devez vous connecter pour publier un commentaire.
En fonction de la façon dont vos données sont structurées, avant de vous
update
, vous pouvez être en mesure d'obtenir une référence à laperson
vous le souhaitez.Donc, si vos données ressemble à quelque chose comme ceci:
Et
document.getElementById("Person").value
vous donne123456
, vous pouvez obtenir la référence:Ensuite, vous voulez pour voir si elle existe, et si elle le fait, le mettre à jour:
ref
est une propriété, et non une méthode. En d'autres termes, il doit êtresnapshot.ref
passnapshot.ref()
. Je ne sais pas si cela a changé dans les versions plus récentes de Firebase, mais je suis tombé sur cette question récemment.de l'instantané.ref() n'est pas la fonction, et en appelant snaphot.réf sur la racine de la référence renvoie la valeur null
OriginalL'auteur Seamus