Firebase 更新或设置
Firebase update or set
在将一个人的 post 添加到 Firebase 数据库后,我想将对新 post 的引用添加到该人。但是,此人可能已经存在,也可能不存在。
我有:
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
});
然而,这会在子 person 中创建一个名为 _person 的节点,而不是 _person 变量的值。使用 set() 会覆盖现有的人。
示例:
首先创建一个节点 remarks/-JlkbxAKpQs50W7r84gf,子节点 person/123456
之后,我想创建一个节点 person/123456(仅当它尚不存在时),然后向其添加一个子节点 remark/-JlkbxAKpQs50W7r84gf。 post-id 是自动生成的 (Firebase),但此人的 ID 是从 html 表单中获取的。
我该怎么做?
根据您的数据结构,在您 update
之前,您可能可以获得对您想要的 person
的引用。
因此,如果您的数据如下所示:
{
"remarks" : {
...
},
"person" : {
"123456" : {
"name" : "foo",
...
"blah" : "bar"
},
...
}
}
而document.getElementById("Person").value
给你123456
,你可以得到这样的参考:
var personRef = ref.child("person").child(_person);
然后你想看看它是否存在,如果存在,更新它:
personRef.once('value', function(snapshot) {
if( snapshot.val() === null ) {
/* does not exist */
} else {
snapshot.ref.update({"postID": postID});
}
});
在将一个人的 post 添加到 Firebase 数据库后,我想将对新 post 的引用添加到该人。但是,此人可能已经存在,也可能不存在。
我有:
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
});
然而,这会在子 person 中创建一个名为 _person 的节点,而不是 _person 变量的值。使用 set() 会覆盖现有的人。
示例: 首先创建一个节点 remarks/-JlkbxAKpQs50W7r84gf,子节点 person/123456
之后,我想创建一个节点 person/123456(仅当它尚不存在时),然后向其添加一个子节点 remark/-JlkbxAKpQs50W7r84gf。 post-id 是自动生成的 (Firebase),但此人的 ID 是从 html 表单中获取的。
我该怎么做?
根据您的数据结构,在您 update
之前,您可能可以获得对您想要的 person
的引用。
因此,如果您的数据如下所示:
{
"remarks" : {
...
},
"person" : {
"123456" : {
"name" : "foo",
...
"blah" : "bar"
},
...
}
}
而document.getElementById("Person").value
给你123456
,你可以得到这样的参考:
var personRef = ref.child("person").child(_person);
然后你想看看它是否存在,如果存在,更新它:
personRef.once('value', function(snapshot) {
if( snapshot.val() === null ) {
/* does not exist */
} else {
snapshot.ref.update({"postID": postID});
}
});