AngularFire $createUser 的承诺不 return 包含用户数据的对象
AngularFire $createUser 's promise doesn't return an object containing user data
根据 $createUser 函数的文档,“... returns 使用包含有关已创建用户的用户数据的对象解析的承诺”
当我使用该函数时(见下面的代码),我可以成功注册用户,但是当我读取应该包含 UID 的变量时,它没有定义。
在 Chrome 的控制台中我得到:"TypeError: Cannot read property 'uid' of undefined"
我是不是做错了什么?我应该以不同的方式检索值吗?
myApp.factory('Authentication', function($firebase, $firebaseAuth, FIREBASE_URL, $location, $rootScope) {
// using $firebaseAuth instead of SimpleLogin
var ref = new Firebase(FIREBASE_URL);
var authObj = $firebaseAuth(ref);
var myObject = {
login : function(user) {
console.log('authentication.js: logging in')
return authObj.$authWithPassword({
email: user.email,
password: user.password
});
}, //login
logout : function(){
return authObj.$unauth();
}, // logout
register : function(user) {
console.log('authentication.js: registering user')
return authObj.$createUser({
email: user.email,
password: user.password
}).then( function(userData) {
console.log("User " + userData.uid + " created successfully!");
});
} // register
} //myObject
return myObject;
});
问题是我使用的是旧版本的 Firebase。我使用的是版本 2.0.4 并根据此 post https://github.com/firebase/angularfire/issues/507 ,从您需要 Firebase 2.0.5 或更高版本和 AngularFire 0.9.1 或更高版本的承诺中获取用户对象。
现在使用这些 CDN 一切正常。
<!-- Firebase -->
<script src="https://cdn.firebase.com/js/client/2.0.5/firebase.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/0.9.1/angularfire.min.js"></script>
根据 $createUser 函数的文档,“... returns 使用包含有关已创建用户的用户数据的对象解析的承诺”
当我使用该函数时(见下面的代码),我可以成功注册用户,但是当我读取应该包含 UID 的变量时,它没有定义。
在 Chrome 的控制台中我得到:"TypeError: Cannot read property 'uid' of undefined"
我是不是做错了什么?我应该以不同的方式检索值吗?
myApp.factory('Authentication', function($firebase, $firebaseAuth, FIREBASE_URL, $location, $rootScope) {
// using $firebaseAuth instead of SimpleLogin
var ref = new Firebase(FIREBASE_URL);
var authObj = $firebaseAuth(ref);
var myObject = {
login : function(user) {
console.log('authentication.js: logging in')
return authObj.$authWithPassword({
email: user.email,
password: user.password
});
}, //login
logout : function(){
return authObj.$unauth();
}, // logout
register : function(user) {
console.log('authentication.js: registering user')
return authObj.$createUser({
email: user.email,
password: user.password
}).then( function(userData) {
console.log("User " + userData.uid + " created successfully!");
});
} // register
} //myObject
return myObject;
});
问题是我使用的是旧版本的 Firebase。我使用的是版本 2.0.4 并根据此 post https://github.com/firebase/angularfire/issues/507 ,从您需要 Firebase 2.0.5 或更高版本和 AngularFire 0.9.1 或更高版本的承诺中获取用户对象。
现在使用这些 CDN 一切正常。
<!-- Firebase -->
<script src="https://cdn.firebase.com/js/client/2.0.5/firebase.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/0.9.1/angularfire.min.js"></script>