Firebase forEach在我的多位置更新中未正确更新

时间:2016-04-22 20:01:36

标签: javascript angularjs foreach ionic-framework firebase

所以我对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中的路径需要两次单击才能同步备份。我只是想知道是否有一些我缺少的东西,或者我应该做些什么来纠正这个问题。

0 个答案:

没有答案