我在使用我的应用中的工厂进行身份验证时遇到了一些问题。目标是仅在用户尚未经过身份验证时才获取令牌。当我使用下面的代码时,我收到以下错误:
无法读取属性' uid'为null
我无法判断这只是一个轻微的语法问题还是更大的问题。看起来似乎没有读取以var authData
开头的代码。
(function() {
'use strict';
angular.module('firebase.auth', ['firebase', 'firebase.ref'])
.factory('Auth', ['$firebaseAuth', 'Ref', function ($firebaseAuth, Ref) {
return $firebaseAuth(Ref);
var authData = Ref.getAuth();
console.log(authData);
if (authData) {
console.log('already logged in with ' + authData.uid);
} else {
return Auth.$authAnonymously({rememberMe: true}).then(showError);
function showError(err) {
Login.err = err;
}
}
}
]);
})();
angular.module('App')
.factory('Projects', function ($firebaseArray, fbURL, Auth, Ref) {
var authData = Ref.getAuth();
var ref = new Firebase(fbURL + '/projects/' + authData.uid);
return $firebaseArray(ref);
})
答案 0 :(得分:1)
return $firebaseAuth(Ref);
看起来没有读取以var authData开头的代码。
你在函数的顶部插入了一个return语句。这将退出该功能。