Firebase身份验证链接合并帐户问题

Firebase身份验证链接合并帐户问题,firebase,firebase-authentication,Firebase,Firebase Authentication,我已经设置了我的应用程序,用户无需登录即可使用。这包括能够保存数据。每个设备/浏览器元组生成一个用于存储数据的新匿名用户帐户 我正在添加(facebook)登录,这样用户就可以确保他们的数据在浏览器和设备之间持久化 firebase文档说明了如何处理用户试图从多个匿名帐户链接其帐户的情况,并推荐了一种合并数据的方法: 我对这种方法的问题是,它删除了链接的原始帐户,这实际上会引导第一个帐户脱离其登录状态 想象一下单个用户的流程: 登录到设备A并保存数据 登录到设备B并保存更多数据 在设备A上,

我已经设置了我的应用程序,用户无需登录即可使用。这包括能够保存数据。每个设备/浏览器元组生成一个用于存储数据的新匿名用户帐户

我正在添加(facebook)登录,这样用户就可以确保他们的数据在浏览器和设备之间持久化

firebase文档说明了如何处理用户试图从多个匿名帐户链接其帐户的情况,并推荐了一种合并数据的方法:

我对这种方法的问题是,它删除了链接的原始帐户,这实际上会引导第一个帐户脱离其登录状态

想象一下单个用户的流程:

  • 登录到设备A并保存数据
  • 登录到设备B并保存更多数据
  • 在设备A上,使用facebook开始“登录”流,并最终链接facebook凭据
  • 在设备B上,他们再次登录/链接facebook(链接失败,因此我们必须使用其他方法进行追索)
  • 建议的过程删除设备A上生成的原始帐户&他们必须在此设备上再次使用facebook登录
  • 我已经实现了一个不同的过程,它不会导致设备a被引导,而是将设备B登录到设备A上生成的帐户中。此流程的问题是,一旦我成功登录到设备A,我就无法从设备B删除用户数据,因为我在firebase上使用访问控制规则,因此用户数据只能由其所属的登录用户修改

    潜在(次优)解决方案:

    • 在登录到其他帐户之前删除用户数据,但如果在任何时候失败,则用户数据将丢失
    • 成功登录到帐户A后,我可以注销,登录到帐户B,删除B的数据,然后重新登录到帐户A,但这个解决方案似乎非常不雅观

    我不明白为什么firebase docs中的示例似乎有这样一个突出的问题,并且想知道针对这种情况的最佳实践是什么。

    我没有得到任何回应,但我实现了我认为“足够优雅”的解决方案

    成功登录到另一个帐户后,我没有删除
    prevUser
    的帐户和数据,而是删除了该帐户:

    我实现了firebase函数来处理孤立用户数据的删除: