【问题标题】:$firebaseObject undefined$firebaseObject 未定义
【发布时间】:2017-11-15 01:36:13
【问题描述】:

所以我有我的 AngularJs + AngularFire 与电子邮件/密码身份验证工作,还有一个名为“用户”的节点,我可以在其中列出所有通过我的应用程序身份验证的用户,如您所见:

所以,在我的身份验证服务中,我有一个 AngularJs 工厂:

.factory('Auth', function($firebaseAuth, $firebaseObject, $firebaseArray){

 var ref = firebase.database().ref();
 var auth = $firebaseAuth();
 var users = $firebaseArray(ref.child('users'));
 var firebaseUser = auth.$getAuth();

var Auth = {

getStudent: function(studentId){
  console.log(studentId)
  return $firebaseObject(ref.child('users').child(studentId));
},

studentSignupProfile: function(profile){
    console.log('Student profile service..!');
    var obj = Auth.getStudent(firebaseUser.uid);
    console.log(obj.name);

    return obj.$loaded().then(function(){
      obj.phone = profile.phone;
      obj.address = profile.address;
      return obj.$save();
    });
}

};

return Auth;
});

这是我的控制器:

 $scope.studentSignupProfile = function(profile){
    console.log(profile);
    if (profile == undefined) {
        toaster.pop('info','Deseamos saber más acerca de tí!');
    } else {
        Auth.studentSignupProfile(profile).then(function(msg){
            toaster.pop('info','Perfil actualizado!');
            $state.go('home');
        });
    }
}

console.log(obj.name) 中未定义响应。如您所见,用户 UID 存在(上图)。

在我的 getStudent 函数中,有一个 console.log(studentId) 向我显示了确切的 uid => 4BAIdOXZv6NTEKsjgI15JTajFtz2。但是当我尝试获取 $firebaseObject 时,它显示我未定义。

【问题讨论】:

    标签: javascript angularjs firebase angularfire


    【解决方案1】:

    您在对象加载之前写入控制台。 console.log() 应该在 $loaded 处理程序中,因此它会在尝试写入名称之前等待:

    var obj = Auth.getStudent(firebaseUser.uid);
    
    return obj.$loaded().then(function(){
       // object now loaded
       console.log(obj.name);
    
      obj.phone = profile.phone;
      obj.address = profile.address;
      return obj.$save();
    });
    

    【讨论】:

    • 哇,老实说,我为此感到愚蠢,但谢谢!我感谢您的帮助! XD
    猜你喜欢
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2015-12-09
    • 2016-04-20
    相关资源
    最近更新 更多