2016-08-21 42 views
1

目前我的應用程序正在使用授權狀態更改回調來指示在我的應用程序中授權和主頁面部分之間移動。 (注意:我沒有使用AngularFire)可以在Javascript中同步檢查Firebase 3身份驗證狀態嗎?

在Firebase 3中有firebase.auth().currentUser但是如果firebase尚未完成從服務器拉取數據,則currentUser設置爲null。該值在啓動時可能爲空,但在2秒後設置,用戶無需對應用程序執行任何操作。

在我的應用程序中,用戶授權狀態應該是他們看到的第一個屏幕的決定因素,因爲這本質上是異步的,他們看到授權頁面,然後在當前用戶更新它將它們移動到主頁,顯示非常俗氣的頁面切換。

開機畫面 - >登錄 - >首頁

的時間在登錄頁面上的量取決於互聯網連接,但它是非常noticable移動數據。

有什麼辦法強制檢查,看看用戶是否登錄,將返回true或false?我可以將一個異步方法變成承諾,問題是如果用戶已經註銷,則在啓動時不會調用onAuthStateChanged回調。

+0

Firebase v3身份驗證GitHub上的完整工作示例https://github.com/rhroyston/firebase-auth –

回答

1

編號使用.onAuthStateChanged來確定用戶身份驗證狀態。

在登錄顯示/閃爍之前currentUser這是通過修改您的HTML/CSS修復的問題。默認視圖不應顯示登錄元素。僅在.onAuthStateChanged告訴您用戶未登錄後纔會顯示。

+1

這就是我正在考慮的事情,但它看起來像一個黑客解決方案。 – Hobbyist