如果firebase用户已经存在并且已登录,如何在应用程序启动时签入AppDelegate?
Posted
技术标签:
【中文标题】如果firebase用户已经存在并且已登录,如何在应用程序启动时签入AppDelegate?【英文标题】:How to check in AppDelegate, on start of the application, if the firebase user already exists and is logged in? 【发布时间】:2018-10-29 09:03:52 【问题描述】:我正在使用 swift4 和 Firebase 开发 ios 应用程序,我正在搜索如何在应用程序启动时签入 AppDelegate,如果 firebase 用户已经存在并已登录?
情况是:
用户打开应用程序并使用用户名和密码以及firebase登录。 用户关闭应用。 用户重新打开应用,如果用户从 Firebase 中取消,我会将他重定向到登录/注册页面。如果我使用var user = firebase.auth().currentUser
,用户结果总是登录,但我已将他从 firebase 中取消。
我可以这样做吗?
【问题讨论】:
当用户登录时,将 firebase.auth().currentUser 保存在 userdefaults 中并在用户注销时将其删除,在 appdelgate 中检查 userdefault 是否存在,如果是则携带到主页,如果没有携带到登录页面。 你必须从firebase SDK获取一些API才能知道用户的登录状态,你可以检查一下。 【参考方案1】:创建一个函数以在用户是否登录时返回布尔值。
func isUserLoggedIn() -> Bool
return Auth.auth().currentUser != nil
然后创建另一个函数将他重定向到任何你想要的地方
func routeInitialVC(with identifier:String )
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: identifier)
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()
最后,只需将 AppDelegate 中的布尔函数与三元运算符一起使用以使其更短并应用路由函数
authHelper.isUserLoggedIn() ? routeInitialVC(with: "HomeVC") : routeInitialVC(with: "AuthVC")
【讨论】:
以上是关于如果firebase用户已经存在并且已登录,如何在应用程序启动时签入AppDelegate?的主要内容,如果未能解决你的问题,请参考以下文章
如果用户已经无密码登录,firebase 可以设置密码身份验证吗?
当用户在flutter中使用otp方法登录时,如何检查用户详细信息是不是已经存在于firebase中? [复制]