更换孩子

时间:2016-05-29 14:30:26

标签: javascript firebase firebase-realtime-database

我有一个从我的Firebase数据库返回数据的函数,如下所示:

function data(value) {
    ref.child('users').child(auth().twitter.id).child(value).once("value", function(snapshot) {
        data = snapshot.val();
     });
    return data;
}

然后,当用户登录时,我有一个代码:

$("#twitter").click(function() {
        ref.authWithOAuthPopup("twitter", function(error, authData) {
          if (error) {
            console.log("Login Failed!", error);
          } else {
            var lol = ref.child('online').push({'displayName' : auth().twitter.displayName.toString()});
            lol2 = lol.name();
            console.log(lol2);
            ref.child('users    ').child(auth().twitter.id).once('value', function(snap) {
                if(!snap.exists()) {
                   ref.child('users').child(auth().twitter.id).set({
                        'pseudo' : auth().twitter.displayName, 
                        'money' : 0,
                        'score' : 0
                    });
                }
            });
            $("#user").html('<li class="pure-menu-item"><a class="pure-menu-link"><b><img src="'+auth().twitter.profileImageURL+'" width="16" height="16" style="margin-right:5px;" />'+auth().twitter.displayName+'</b></a></li></li>');
            $("#money").html('<li class="pure-menu-item"><a class="pure-menu-link"><b><img src="img/icons/money.png" width="16" height="16" style="margin-right:5px;" />'+data('money')+'</b></a></li></li>');
          }
        });
    });

但是使用这段代码,li创建的返回我的函数代码data(),如果我把'online'放在这一行:

ref.child('online').child(auth().twitter.id).once('value', function(snap) {

它返回正确的答案,即0(或任何其他数字,但总是0,因为id不存在,因为'online'不是正确的孩子,正确的是'用户',所以...)

有人可以告诉我为什么吗? :v 谢谢 !

0 个答案:

没有答案