我正在为我的网站上的帖子构建一个喜欢/不喜欢的系统。每次用户单击“喜欢”按钮时,喜欢的数量都会在数据库中更新。存储在数据库中的对象具有图像的url,类别和喜欢的数目作为其键。
以下是我的更新代码:likeedButton(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
});
});
});
}
}
我希望更新“喜欢”的现有值。但是该函数结束了创建新对象的过程。
答案 0 :(得分:0)
您应该使用update代替,因为对对象的调用集将完全替换它或在不存在的情况下创建新记录
firebase.database()。ref('/ userPosts'+ keys +'/ likes')。update({'likes':n})