我有以下代码添加备注('opm')给一个人('leerling')。Firebase推送不添加,但替换(JavaScript)
function onFormSubmitted()
{
event.preventDefault();
var ref = new Firebase("https://mydatabase.firebaseio.com/");
var _leerling = document.getElementById("Leerling").value;
var _opmerking = document.getElementById("Opmerking").value;
var postsRef = ref.child("opmerkingen");
var newPostRef = postsRef.push({
leerling: _leerling,
opmerking: _opmerking
});
var postID = newPostRef.key();
var leerlingRef = ref.child("leerling").child(_leerling);
leerlingRef.once('value', function(snapshot) {
if(snapshot.val() === null) {
/* does not exist */
var leerlingNummer = _leerling.substring(0,6).trim();
ref.child("leerling").child(leerlingNummer).set({
"naam": _leerling.substring(7,33).trim(),
"klas": _leerling.substring(34,38)
})
ref.child("leerling").child(leerlingNummer).child("opmerkingen").push({
"opmID": postID
})
} else {
var leerlingPostRef = snapshot.ref().child("opmerkingen)");
leerlingPostRef.push({"opmID": postID});
}
});
}
在代码开头处postsRef.push按照预期向opmerkingen子元素(在根中)添加备注。
在代码的末尾,我做了和leerling的opmerkingen孩子一样的(leerlingPostRef.push),但是在那里整个opmerkingen孩子得到了REPLACED,删除了现有的opm:postID而不是加一个。
什么是错,如何解决?
所以你只是想更新opmID为Leerling值
? – 2015-03-31 20:28:27
我想。 leerling的内容应该保持不变,只有一个备注应该是ADDED – user1837293 2015-03-31 20:30:25
我建议使用Firebase.update()。查看我的答案,稍微详细一点。 – 2015-03-31 20:38:59