场景:
我已使用电子邮件提供商使用Firebase Auth登录。我使用以下Swift代码更改了用户的photoURL和displayName:
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.photoURL = someURL
changeRequest?.displayName = someName
changeRequest?.commitChanges { (error) in
// ...
}
从那时起,当我使用Auth.auth().currentUser.photoURL
和Auth.auth().currentUser.displayName
来呈现用户的名称和头像时,一切都按预期工作。没问题。
但是,在更改photoURL和displayName之前,我还登录了另一台设备。并且在该设备上,即使杀死并重新启动应用程序,也会显示 old 用户信息。同时,我也在使用Auth.auth().addStateDidChangeListener
API。
仅当我注销并重新登录时,才会刷新用户信息。我想它使用的是本地缓存的数据,但不是从服务器或其他设备中获取新的用户信息?
我做错什么了吗?应用启动时是否需要强制刷新?
编辑:我已经尝试了几次,是的,它是100%可复制的。
Auth.auth().currentUser.displayName
。答案 0 :(得分:0)
最后,我创建了一个新的顶级Users集合,现在在其中存储用户个人资料数据。使用快照侦听器,在一台设备上更新信息也会在另一台设备上更新信息。太可惜了,这是必须的,但它可以工作。