如果从服务器端升级匿名 firebase 帐户,则监听更改

Listen for changes if anonymous firebase account is upgraded from server side

如何侦听匿名帐户更改?我注意到,如果我从服务器端“升级”用户,onAuthStateChanged 不会改变。

// server side "upgrade"
const authUser = await updateUser(uid, {
  email, emailVerified: true, password, displayName: `${firstName} ${lastName}`, disabled: false
});
(...)
return await auth.createCustomToken(uid), 

我的结帐流程:

  1. 用户完成结帐并收到消息以检查他的邮件(获取匿名用户 ID)
  2. 收到创建帐户的电子邮件
  3. 最有可能在移动设备或其他标签页/浏览器中打开电子邮件
  4. 使用 username/password 创建帐户并接收令牌
  5. 旧标签内容不会改变

我的问题是,如果用户确认他的帐户,它很可能会在新选项卡或另一台设备上发生,并使旧选项卡处于过时状态。我也想用欢迎信息更新该选项卡。

Firebase Auth 中没有适用于帐户更改的侦听器。您将需要另一种方式来以某种方式向应用程序发出信号,表明发生了某些变化。两个选项是:

  1. 让客户端监听 Firestore 中的文档或实时数据库中的某个位置以观察更改,并让您的后端在发生升级时写入该位置。
  2. 使用 FCM ping 应用程序。

无论哪种情况,您都需要通过对当前用户对象调用 reload() 来手动强制重新加载当前用户。