我有一个更新用户个人资料图片的组件:
const Updater = () => {
const updateProfilePic = async (photoURL) => {
await auth.currentUser.updateProfile({ 'photoURL': photoURL });
}
}
我有第二个组件检测用户状态的变化:
const StateChangesDetector = () => {
auth.onAuthStateChanged( user => {
if(user)
console.log('User changed state', JSON.stringify(user));
});
}
问题是执行updateProfile()
后,没有触发auth.onAuthStateChanged()
。因此,我获得了旧用户的状态和旧的个人资料图片。
更新用户头像后如何强制触发auth.onAuthStateChanged()
?
最佳答案
尝试reload() currentUser 对象上的函数来获取更新的信息。请注意,它是异步的并返回一个 promise 。如果它没有触发监听器(因为它并不是真正的“状态”更改,只是数据刷新),我怀疑您可能必须在之后再次访问 firebase.auth().currentUser
返回的 Promise 解析为查看新数据。
关于javascript - Firebase 中的 auth.currentUser.updateProfile 之后未触发 auth.onAuthStateChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61066301/