所以我对firebase还有点新意,所以我不太确定我做事的方式是否正确。但我尝试创建一个like按钮,然后使用多位置更新来更新我在不同位置的数据。除ForEach函数外,一切正常。我第一次按它没有任何反应,然后下次它工作并与数据同步。
我简化了我的代码,希望它更容易理解:
$scope.likePost = function(post) {
var updatedLikeData = {};
var addCountObj = {
likesCount: (post.likesCount || 0) + 1,
}
updatedLikeData["path/to/update/"] = addCountObj;
updatedLikeData["path/to/update/"] = addCountObj;
updatedLikeData["path/to/update/"] = addCountObj;
ref.child("userObjects").child("followers").child(post.userKey).on('value', function(snap) {
if (snap.val() !== null && snap.val() !== undefined) {
followers = Object.keys(snap.val());
followers.forEach(function(key) {
updatedLikeData["path/to/update/" + key] = addCountObj;
return updatedLikeData;
});
}
});
ref.update(updatedLikeData, function(error) {
if(error) {
console.log("Error updating entry data:", error);
}
})
}
所以我的所有其他路径都在更新它们应该的方式,但是forEach中的路径需要两次单击才能同步备份。我只是想知道是否有一些我缺少的东西,或者我应该做些什么来纠正这个问题。