我在应用程序中的工厂验证时遇到一些问题。目标是仅在用户尚未经过身份验证时获取 token 。当我使用下面的代码时,出现以下错误:
Cannot read property 'uid' of 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);
})
最佳答案
return $firebaseAuth(Ref);
It looks like none of the code starting with var authData is being read.
您在函数顶部添加了 return 语句。这将退出该函数。
关于javascript - Angular 返回对象后无法访问代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427964/