我遇到的問題是當頁面加載時需要一秒鐘來檢查用戶是否登錄。我使用該auth函數來創建我已經成功的currentUser變量用於由點擊事件觸發的其他功能。但是在加載頁面時加載特定於用戶的東西時,它表示該變量未定義(因爲它需要身份驗證才能完成)。等待auth使用firebase加載的問題
如何在auth完成之前獲取當前用戶,或者讓加載時觸發的函數等待auth被授權?
我遇到的問題是當頁面加載時需要一秒鐘來檢查用戶是否登錄。我使用該auth函數來創建我已經成功的currentUser變量用於由點擊事件觸發的其他功能。但是在加載頁面時加載特定於用戶的東西時,它表示該變量未定義(因爲它需要身份驗證才能完成)。等待auth使用firebase加載的問題
如何在auth完成之前獲取當前用戶,或者讓加載時觸發的函數等待auth被授權?
火力地堡發佈新的客戶端庫上週五(2014年10月3日),其中包括用於驗證數據的同步訪問器,這聽起來正如您所需:
var ref = new Firebase('https://<your-firebase>.firebaseio.com');
var authData = ref.getAuth();
嘗試將您的客戶端庫升級到v1.1.0或更高版本的Web,並參閱https://www.firebase.com/docs/web/guide/user-auth.html#section-monitoring-authentication的最新文檔。
您可以使用setInterval
,下面的代碼將檢查currentUser
每半秒和運行fireBusinessLogicHereFunction()
時currentUser
將可用:
var checkAuthInterval = setInterval(function(){
if (typeof currentUser !== undefined) {
clearInterval(checkAuthInterval);
fireBusinessLogicHereFunction();
}
}, 500);
以後將有可能使用promises
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise