2016-11-26 6 views
0

私はこの問題に対する強力な解決策を見つけることができませんでした。問題は、onAuthStateChangedが初期化されるときに一度実行され、解決されるときに再び実行されるということです。私のアプリケーションは認証状態に応じてビューを読み込むので、初期化は常に不変の値を返します。Firebase onAuthStateChangedファイアリングの解決方法(初期化と解決)?

これにはまだ強力な解決策がありますか?それともこれは問題ではないですか?私はちょうど狂っていますか?

かなり見たところで、ハックや回避策が見つかっただけです。

カップル:

Firebase Android onAuthStateChanged called twice

Possible to check Firebase 3 auth state synchronously in Javascript?

答えて

0

onAuthStateChangedは常に初期化時にトリガされます。ただし、現在のFirebase Idトークン(サインアウトまたは新しいサインインイベント)に変更がない限り、再起動しないでください。しかし、firebase Idトークンは毎時間更新されるので、トークンがリフレッシュされるたびに毎時トリガされることに注意してください。リスナーにロジックを追加して、ユーザーが変更されたかどうかを確認し、同じユーザーがまだログインしていない場合は無視します。他の動作に気づいた場合は、Firebaseチームに修正を依頼してください。

+0

おそらく私の言葉は正確ではありません。 onAuthStateChangedは、初期化時に常にコールバックを2回実行します。最初に初期化し、直ちに 'null'を返し、与えられたコールバックを実行します。その後、解決され、Firebaseから正しい値が返され、指定されたコールバックが再度実行されます。 – skwny

+0

これはすぐに起こりますか?私は既にトークンが1時間程度でリフレッシュすると述べました。また、getToken(true)を呼び出すと強制的に更新が行われます。 – bojeil

+0

私もこの問題を見てきました。私はそれがonAuthStateChangedとsignInWithの両方の使用によるものであると考えていますが、両方ともそれを2度呼び出すようにしています。おそらくそれは問題ですか? – jaredwilli

関連する問題