當我使用下面的代碼,我收到以下錯誤:
Provider 'Login' must return a value from $get factory method.
我查看了計算器的帖子here和here,但可弄清楚我做錯了什麼。
myApp.factory('Login', function($location, $firebaseAuth, Ref, Auth) {
var authData = Ref.getAuth();
if (authData) {console.log('already logged in with ' + authData.uid)} else {
return Auth.$authAnonymously({rememberMe: true}).then(redirect, showError);
function redirect() {
$location.path('/account');
}
function showError(err) {
Login.err = err;
}
}
});
謝謝。我想要做的是檢查一下用戶是否已經被認證。如果不是,那麼我想驗證。如果已經通過身份驗證,那麼我真的不想做任何事情。你是否建議我將這個包裝在IIFE函數中,並將其更改爲服務而不是工廠? – Ken 2015-04-02 06:33:00
在我的回答中更新了它。 – mohamedrias 2015-04-02 06:40:51
謝謝,這是有道理的。如果我已經在Auth服務中返回一個對象,我仍然可以將上面的代碼添加到該服務中嗎?例如,在添加其餘代碼之前,我可以先使用'return $ firebaseAuth(Ref);'?如果沒有遇到其他問題,我似乎無法包含該附加行。 – Ken 2015-04-02 08:17:52