2017-05-16 2 views
0

firebase authを使用していて、ユーザーがdisplayNamephotoURL、またはemailなどのようにプロファイルを変更した場合、onAuthStateChangedコールバックは発生しませんが、基礎となるfirebase.auth().currentUserは自動的に更新されます。firebase.auth()。currentUser.displayNameと他の属性の変更を監視する方法?

ユーザーがプロフィールを更新した後、UIを更新する必要があります。 firebase.auth().currentUserをクライアントストア(具体的にはvuexまたはreduxのようなストア)と同期させておきたいと思います。

firebase.auth().currentUserが変更されたか、またはfirebase.auth().currentUserが変更されたときに通知を受け取るために使用できる他のフックを観察する方法はありますか?

ありがとうございます!

+1

現時点ではこの機能は存在しないと考えてください。 Firebaseチームに不具合を記録する必要があります。 – hazardous

+1

この関数を呼び出してuiを更新することができます。たとえば、ユーザーが名前を変更した場合は、関数を呼び出してuiに新しい名前を設定します。他のユーザーがプロフィールを変更した場合は、データベースを使用してデータ変更を保存し、ondatachangeを介して通知します – AlwaysConfused

答えて

0

Firebase認証のユーザプロファイルが変更された場合のコールバックはありません。典型的なパターンは、認証リスナがクライアントアプリケーションでトリガされるたびに、ユーザプロファイルデータをデータストア(リアルタイムデータベースなど)に書き込むことです。クライアントは、各ユーザーのプロファイルデータが存在する場所を聴くことができ、それらの変更に自分自身で対応することができます。また、Cloud Functions for Firebaseを使用して、プロファイルデータが書き込まれたときに実際に変更されたものがないかどうかを確認し、必要に応じてアクションを実行できるデータベース書き込みトリガーを書き込むことができます。

0

私は同じ問題を抱えています。反応して使用していて、Send verification EmailからEmail Verifiedに変更されたコンポーネントを見たいと思っています。私が行ったことは、ユーザインスタンスにreloadメソッドをラップする関数を作成することです。これは約束ですので、約束が満たされたときには、firebase.auth().currentUser関数を呼び出すと、今更新の原因が更新されます。私はすべてのものをコンポーネントライフサイクルなどに合わせます。

const user = firebase.auth().currentUser; 
user.reload().then(() => { 
    const refreshUser = firebase.auth().currentUser; 
    // do your stuff here 
}) 

リロードのためのドキュメントがあります。 https://firebase.google.com/docs/reference/js/firebase.User#reload

希望がありますように:)

関連する問題