如何观察firebase.auth().currentUser.displayName等属性的变化?

How to observe firebase.auth().currentUser.displayName and other attributes for changes?

我正在使用 firebase 身份验证,当用户更改他们的配置文件时,例如他们的 displayNamephotoURLemail 等,onAuthStateChanged 回调不会被解雇,但底层 firebase.auth().currentUser 会自动更新。

我需要在用户更新个人资料后更新 UI,即。我想让 firebase.auth().currentUser 与客户端商店保持同步(特别是 vuexredux 之类的商店)。

有没有办法观察 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

希望能帮到你:)