在 Flutter 中使用 Firebase 然后(Instagram)进行正确的登录架构

Posted

技术标签:

【中文标题】在 Flutter 中使用 Firebase 然后(Instagram)进行正确的登录架构【英文标题】:Proper login architecture with Firebase then (Instagram) in Flutter 【发布时间】:2020-09-11 10:53:03 【问题描述】:

让我解释一下我要做什么。我有一个使用 Firebase 对用户进行身份验证的应用。但是,当用户登录时,用户必须链接 Instagram 帐户才能继续(该应用程序使用 Instagram 数据进行操作)。问题不在于如何使用 Firebase 或 Instagram 进行实际登录,而在于如何构建我的应用程序以使工作流程正常工作。我当前的工作流程依赖于根页面侦听流中的 Firebase 用户更改,并根据情况返回相应的页面。这不是我真正想要的,原因有两个。 1) 坏了;这些页面实际上并没有在它们应该返回的时候返回(这可能是因为我在 StreamBuilder 中有一个 FutureBuilder ,所以它变得混乱了?)。但是,如果我重新加载应用程序,状态确实会发生变化,并且会加载正确的页面。 2)这样做我必须直接从创建帐户页面转到链接页面。我想返回登录页面,以便通过发送电子邮件继续 Instagram 链接过程来确认帐户。总之,这是我正在尝试做的一些伪代码:

Root Page:
    If user is logged in:
        Go to Link Decider
    Else:
        Go to (Firebase) Login Page

Link Decider:
    If user is logged in with Instagram:
        Go to Home Page
    If user has Instagram account linked to Firebase but is not logged in:
        Go to Log in with Instagram Page
    If user hasn't linked Instagram:
        Go to Link Instagram Page

Instagram Link/Login Pages:
    Do login then go to Home Page

抱歉,我刚刚尝试了很多东西,但似乎没有任何效果,所以我想其他人可能对如何做到这一点有更好的想法。如果您想查看一些具体的实现,我可以添加它,但我认为没有必要(因为我正在尝试以一种更好的方式来做到这一点,而不是修复我古怪的方式)。很感谢任何形式的帮助。谢谢!

【问题讨论】:

【参考方案1】:

如果您想听听我的意见,请关注以下链接中的 Flutter Firebase 和 DDD 课程系列。我从这个网站学到了很多关于构建应用程序的知识 Flutter Firebase & DDD Course

【讨论】:

以上是关于在 Flutter 中使用 Firebase 然后(Instagram)进行正确的登录架构的主要内容,如果未能解决你的问题,请参考以下文章

Flutter firebase realtime db 在规则中使用 displayName

Flutter 函数使用 Firebase 返回空列表

如何在 Flutter 中缓存 Firebase 数据?

Flutter 和 Firebase:从 Firebase 中的数组中删除项目(地图)

如何在 Flutter 中设置不同的 firebase 环境

如何在 Flutter 中删除 Firebase 云消息传递令牌