Firebase无法增加计数器

时间:2015-05-03 22:53:38

标签: javascript jquery cookies firebase

我有两个firebase脚本;其中一个工作正常,但其他没有。我不知道发生了什么。这两个脚本基于相同的逻辑。唯一的区别是,无论网站主页或帖子页面如何,计数器2数据总是递增的,而计数器1数据只增加它是帖子页面(即路径名!=' /')。幸运的是,计数器1工作正常,但计数器2没有。我不知道自己做错了什么 请帮我摆脱这个bug。任何形式的帮助将不胜感激。



  $(function(){
    var parentDataRef = 'https://blablabla.firebaseio.com/';
    
    //counter 1
      var postRef = new Firebase(parentDataRef+'one');
      getFirebaseData(postRef,'post',function(pData){
        alert(pData);
      });

    
    //counter 2
    var blogRef = new Firebase(parentDataRef+'two');
    getFirebaseData(blogRef,'blog',function(bData){
      alert(bData);
    });  
  });



  //get Firebase data
  function getFirebaseData(r,bp,back){ //Reference, Blog or Post, Return data
    var doctitle = document.title;
    r.once('value', function(e) {
      var data=e.val();
      if (data==null){data=1;}
      else if (getCookie(doctitle)!='yes'){
        if (bp=='post' && window.location.pathname!='/') {data++;}
        else if (bp=='blog') {data++;}
      }
      
      r.set(data);
      back(data);
      setCookie(doctitle,'yes',7);
    });
  }


  //set Cookie Data
  function setCookie(cname,cvalue,exdays){
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = 'expires=' + d.toGMTString();
    document.cookie = cname+'='+cvalue+'; '+expires+'; path=/';
  }

  //get Cookie Data
  function getCookie(cname){
    var name = cname + '=';
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1);
      if (c.indexOf(name) == 0) {
        return c.substring(name.length, c.length);
      }
    }
    return '';
  }
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我可以建议您使用柜台交易吗?

var upvotesRef = new Firebase('https://docs-examples.firebaseio.com/android/saving-data/fireblog/posts/-JRHTHaIs-jNPLXOQivY/upvotes');
upvotesRef.transaction(function (current_value) {
  return (current_value || 0) + 1;
});