如何观察firebase.auth().currentUser.displayName和其他属性的更改?

如何观察firebase.auth().currentUser.displayName和其他属性的更改?,firebase,firebase-authentication,vuex,Firebase,Firebase Authentication,Vuex,我正在使用firebase auth,当用户更改其配置文件时,例如他们的displayName、photoURL、或email等。不会触发onAuthStateChanged回调,但会自动更新基础firebase.auth()。currentUser 用户更新其配置文件后,我需要更新UI,即我希望保持firebase.auth().currentUser与客户端存储同步(特别是vuex或redux-like存储) 有没有一种方法可以观察firebase.auth().currentUser的更改

我正在使用firebase auth,当用户更改其配置文件时,例如他们的
displayName
photoURL
、或
email
等。不会触发
onAuthStateChanged
回调,但会自动更新基础
firebase.auth()。currentUser

用户更新其配置文件后,我需要更新UI,即我希望保持
firebase.auth().currentUser
与客户端存储同步(特别是
vuex
redux
-like存储)

有没有一种方法可以观察
firebase.auth().currentUser
的更改,或者在
firebase.auth().currentUser
更改时可以使用的任何其他挂钩来获得通知


谢谢

当Firebase身份验证用户配置文件更改时,没有任何回调。典型的模式是每次在客户端应用程序中触发身份验证侦听器时,将用户配置文件数据写入数据存储(如实时数据库)。然后,客户端可以监听每个用户的配置文件数据所在的位置,并自行对这些更改作出反应。此外,您还可以使用编写数据库写入触发器,该触发器可以检查在写入配置文件数据时是否有任何实际更改,并根据需要在那里采取措施。

我也遇到了同样的问题,我使用react时,希望看到一个组件从
发送验证电子邮件
更改为
电子邮件验证
。我所做的是创建一个函数,在用户实例上包装
reload
方法。这是一个承诺,因此当承诺实现时,我现在调用
firebase.auth().currentUser
函数,该函数现在获得重新加载的更新原因。我将所有这些与一些组件生命周期等相匹配

const user = firebase.auth().currentUser;
user.reload().then(() => {
  const refreshUser = firebase.auth().currentUser;
  // do your stuff here
})
重新加载的文档在那里


希望这能有所帮助:)

现在不要认为这个功能存在。你应该向Firebase团队记录一个缺陷。你可以调用该函数来更新你的ui。例如,当用户更改名称时,调用函数为ui设置新名称。如果其他用户更改了其配置文件,则使用数据库保留数据更改,并通过OnDataChange通知。这样,我们就可以获得用户数据/配置文件/任何更改的实时更新。非常感谢!