How to observe firebase.auth().currentUser.displayName and other attributes for changes?
I get the same problem for me, I was using with react and want to see a component who changed from Send verification Email
to Email Verified
. What I've done it's create a function who wrap the reload
method on the user instance. This one is a promise, so when the promise fulfilled I now call the firebase.auth().currentUser
function who get now update cause of the reload. I match all that with some component lifecycle etc.
const user = firebase.auth().currentUser;
user.reload().then(() => {
const refreshUser = firebase.auth().currentUser;
// do your stuff here
})
The docs for the reload are there. https://firebase.google.com/docs/reference/js/firebase.User#reload
Hope that can help :)
There aren't any callbacks for when a Firebase Authentication user profile changes. The typical pattern is to write the user profile data into a data store (such as Realtime Database) every time an authentication listener is triggered in a client app. Clients can then listen to the location where profile data for each user lives, and react to those changes on their own. Also, you can use Cloud Functions for Firebase to write a database write trigger that can check to see if anything actually changed when profile data is written, and take action there as needed.