在 iOS 上退出 Google 登录无法在 Flutter Firebase 中运行
Posted
技术标签:
【中文标题】在 iOS 上退出 Google 登录无法在 Flutter Firebase 中运行【英文标题】:Sign out of Google sign in on iOS not working in Flutter Firebase flutter fire 【发布时间】:2021-01-07 19:12:52 【问题描述】:在我的 Flutter ios 应用中,Firebase 退出 Google 失败。我使用这些行退出 Google:
await GoogleSignIn().signOut();
await FirebaseAuth.instance.signOut();
然后我用 Apple 登录。但是,当我检查FirebaseAuth.instance.currentUser.providerData
时,除了apple.com 提供程序之外,google.com 提供程序仍然存在。不应该在GoogleSignIn().signOut()
上删除这个 google.com providerData 吗?
编辑:我的期望是FirebaseAuth.instance.currentUser.providerData
将是当前登录的身份验证提供程序的列表。因此,我希望当我退出 Google 时,google.com providerData
条目将被删除。也许这种期望是错误的,如果是这样,我怎么知道用户当前登录的是哪个提供商?那么,例如,如果我想获取用户的姓名,我如何知道从哪个 providerData 中提取?
【问题讨论】:
请编辑问题以更具体地说明什么没有按您期望的方式工作。如果登录的帐户链接到多个提供商,则提供商数据中肯定可以有多个条目,每个链接的提供商都有一个。 感谢@DougStevenson 对问题的反馈。我已经相应地更新了问题。 你是如何实现你的providerData的?你能给我们看看代码吗? 您也必须退出 firebase。 FirebaseAuth.instance.signOut().then(.... 【参考方案1】:我的问题源于对providerData
工作原理的误解。我认为它将包含当前登录的提供程序。相反,它包含与 Firebase 中的用户关联的所有提供程序。
为了记录用户名,我在登录过程中记录了用户名,此时应用知道登录的是哪个提供商。
【讨论】:
以上是关于在 iOS 上退出 Google 登录无法在 Flutter Firebase 中运行的主要内容,如果未能解决你的问题,请参考以下文章
使用 Google 登录无法在 Android 上运行(仅在 iOS 上) - Flutter
无法在 Google Colab 上安装 Pytorch Lightning Flash