【发布时间】:2016-07-15 22:15:14
【问题描述】:
这是工厂中的一个方法:
kbUser.getCurrentUserDetails = function(){
return $rootScope.ref.child("user/" + firebase.auth().currentUser.uid).once('value', function(snap){
return snap.val();
});
}
我在这样的控制器中调用这个方法:
return kbUser.getCurrentUserDetails().then(function(details){
// Here I need to do .val() once again
for (var attrname in details.val()) { kbUser.userObject.details[attrname] = details.val()[attrname]; }
kbUser.copyFirebaseDataToUser(firebaseUser).then(function(){
return true;
});
});
这是我返回的:details = W {A: P, W: U, g: ve},与我的数据库不对应。
当我在此处读取 details 变量时,我必须再次执行 details.val() 以从我的数据库中获取预期的 JSON 对象。我不明白为什么方法中没有返回snap.val() 的结果,而只是返回'原始'firebase 数据快照snap。有人知道为什么会这样吗?
假设工厂设置正确。
【问题讨论】:
标签: angularjs firebase firebase-realtime-database angularfire