首页 > 解决方案 > Flutter Firebase 身份验证 - 注销和登录后生成的新匿名用户

问题描述

Firebase 身份验证文档指出:

如果没有在平台上(针对您的特定应用程序)创建以前的匿名帐户,则在匿名登录时,Firebase 将创建一个新的唯一用户,该用户将在应用重新启动/页面重新加载时保持不变。如果用户退出并再次匿名重新验证,他们将使用之前创建的帐户登录。

然而,当我以匿名用户身份退出并再次登录时,我得到了一个的匿名用户,而不是使用之前创建的帐户登录。需要明确的是,登录是通过调用来完成的FirebaseAuth.instance.signInAnonymously(),而注销是通过调用来完成的FirebaseAuth.instance.signOut()

标签: firebaseflutterfirebase-authentication

解决方案


这看起来像是 FlutterFire 文档中的一个错误。从匿名帐户注销后,该帐户的 UID 将丢失且无法收回。

我对文档意图的最佳猜测是signInAnonymously多次调用将导致相同的 UID。但是将用户注销会清除该 UID,并且无法回收。我提交了一个 PR 来改进这里的文档。


推荐阅读