我有一个从我的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 谢谢 !