如何观察firebase.auth().currentUser.displayName等属性的变化?
How to observe firebase.auth().currentUser.displayName and other attributes for changes?
我正在使用 firebase 身份验证,当用户更改他们的配置文件时,例如他们的 displayName
、photoURL
或 email
等,onAuthStateChanged
回调不会被解雇,但底层 firebase.auth().currentUser
会自动更新。
我需要在用户更新个人资料后更新 UI,即。我想让 firebase.auth().currentUser
与客户端商店保持同步(特别是 vuex
或 redux
之类的商店)。
有没有办法观察 firebase.auth().currentUser
的变化,或者我可以用来在 firebase.auth().currentUser
变化时得到通知的任何其他钩子?
谢谢!
Firebase 身份验证用户配置文件更改时没有任何回调。典型的模式是每次在客户端应用程序中触发身份验证侦听器时,将用户配置文件数据写入数据存储(例如实时数据库)。然后,客户可以收听每个用户的个人资料数据所在的位置,并自行对这些变化做出反应。此外,您可以使用 Cloud Functions for Firebase 编写一个数据库写入触发器,它可以检查写入配置文件数据时是否有任何实际更改,并根据需要在那里采取行动。
我遇到了同样的问题,我正在使用 react 并希望看到一个从 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
希望能帮到你:)
我正在使用 firebase 身份验证,当用户更改他们的配置文件时,例如他们的 displayName
、photoURL
或 email
等,onAuthStateChanged
回调不会被解雇,但底层 firebase.auth().currentUser
会自动更新。
我需要在用户更新个人资料后更新 UI,即。我想让 firebase.auth().currentUser
与客户端商店保持同步(特别是 vuex
或 redux
之类的商店)。
有没有办法观察 firebase.auth().currentUser
的变化,或者我可以用来在 firebase.auth().currentUser
变化时得到通知的任何其他钩子?
谢谢!
Firebase 身份验证用户配置文件更改时没有任何回调。典型的模式是每次在客户端应用程序中触发身份验证侦听器时,将用户配置文件数据写入数据存储(例如实时数据库)。然后,客户可以收听每个用户的个人资料数据所在的位置,并自行对这些变化做出反应。此外,您可以使用 Cloud Functions for Firebase 编写一个数据库写入触发器,它可以检查写入配置文件数据时是否有任何实际更改,并根据需要在那里采取行动。
我遇到了同样的问题,我正在使用 react 并希望看到一个从 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
希望能帮到你:)