javascript - Firebase 中的 auth.currentUser.updateProfile 之后未触发 auth.onAuthStateChanged

标签 javascript firebase firebase-authentication

我有一个更新用户个人资料图片的组件:

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/

相关文章:

javascript - Diffbot 是否执行 JavaScript?

javascript - 当表单提交 AngularJs 时,$scope.variable 在浏览器控制台中未定义

javascript - 检查是否输入了正确的电子邮件

android - 服务端数据更新时发送Push Notification到Android应用,并开启自定义Activity

javascript - 如何将关闭图标移至搜索栏右侧内侧?

android - 如何知道在 firebase DB 中添加了哪个新条目?

javascript - 尝试更新和删除多个位置时未调用/触发返回的 Pomises Angular Firebase Web api

离线时的 Firebase setValue

javascript - 刷新后,firebase Auth当前用户返回null

javascript - firebase auth verifyBeforeUpdateEmail 和 updateEmail 之间的区别