firebase.database.ref( "..." ).set({}) 创建一个新对象,而不是更新现有对象。



我正在为我网站上的帖子建立一个喜欢/不喜欢的系统。每次用户单击"喜欢"按钮时,数据库中的"喜欢"数量都会更新。存储在数据库中的对象具有图像的 URL、类别和喜欢的数量作为其键。

以下是我的更新代码:likedButton(img(是一个在用户单击喜欢按钮时调用的函数。

likedButton(img) {
var url = img.src;
var x = this.db.list('/userPosts',
ref => ref.orderByChild('url').equalTo(url));

x.snapshotChanges().subscribe(
(datas) => { 
var keys  = datas[0]['key'];
var obj = x.valueChanges().subscribe((z) => {
var n = z[0]['likes'];
n++;
console.log(n);
firebase.database().ref('/userPosts'+keys+'/likes').set({
'likes' : n
});

});
});
}
}

我希望更新"喜欢"的现有值。但是该函数以创建新对象结束。

您应该改用 update,因为对对象的调用 set 将完全替换它或创建新记录(如果不存在(

firebase.database((.ref('/userPosts'+keys+'/likes'(.update({ 'likes' : n}(

最新更新