3

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

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));

    });

}

问题是auth.onAuthStateChanged()执行后没有触发updateProfile()。因此,我得到了旧用户的状态和旧的个人资料图片。

auth.onAuthStateChanged()更新用户头像后如何强制触发?

4

1 回答 1

2

在 currentUser 对象上尝试reload()函数以获取更新的信息。请注意,它是异步的并返回一个承诺。如果它没有触发侦听器(因为它不是真正的“状态”更改,只是数据的刷新),我怀疑您可能必须firebase.auth().currentUser在返回的承诺解析后再次访问以查看新数据。

于 2020-04-06T18:31:20.987 回答