$firebaseObject 未定义
$firebaseObject undefined
所以我有我的 AngularJs + AngularFire 和 email/password 身份验证工作,还有一个名为 "users" 的节点,我可以在其中列出所有通过我的应用程序身份验证的用户,就像你一样看:
所以,在我的身份验证服务中,我有一个 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 时,它显示未定义。
您正在您的对象加载之前写入控制台。 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();
});
所以我有我的 AngularJs + AngularFire 和 email/password 身份验证工作,还有一个名为 "users" 的节点,我可以在其中列出所有通过我的应用程序身份验证的用户,就像你一样看:
所以,在我的身份验证服务中,我有一个 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 时,它显示未定义。
您正在您的对象加载之前写入控制台。 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();
});