热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过iOS中的Listener检查Firebase当前登录用户

如何解决《通过iOS中的Listener检查Firebase当前登录用户》经验,为你挑选了1个好方法。

我已经实施了Firebase授权,可以通过Facebook和Google登录我的iOS应用.我正在编写Swift.当应用程序启动时,我需要检查用户是否已经登录才能呈现正确的ViewController(例如,如果没有人登录我会出现登录视图控制器,否则我会呈现主视图控制器).如果我使用Firebase提供的"简单"解决方案,意思是

if FIRAuth.auth()?.currentUser != nil {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

因此,检查当前用户是否为零,它恰好发生Firebase指南(https://firebase.google.com/docs/auth/ios/manage-users)警报可能发生的意义

"注意:currentUser也可能是nil,因为auth对象还没有完成初始化.如果你使用监听器来跟踪用户的登录状态,你不需要处理这种情况."

所以我想按照指南中的建议实现监听器:

handle = FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
  // ...
}

侦听器还将处理中间状态,以便在创建Auth对象时触发它.重点是我真的无法让它正常工作.任何人都可以帮我使用这个监听器来检查用户是否登录?

谢谢



1> ronatory..:

我已经实现了这样:

FIRAuth.auth()?.addStateDidChangeListener { auth, user in
  if let user = user {
    // User is signed in. Show home screen
  } else {
    // No User is signed in. Show user the login screen
  }
}

如果在检查后不需要User对象,则可以if let user = user使用布尔测试替换,如下所示:

FIRAuth.auth()?.addStateDidChangeListener { auth, user in
  if user != nil {
    // User is signed in. Show home screen
  } else {
    // No User is signed in. Show user the login screen
  }
}

放置监听器的位置(来自评论):

对于我过去检查用户是否已登录的情况,将其放在viewDidLoad特定视图控制器的开头就足够了.但是,如果您有任何需要在每次进入特定视图控制器时进行检查的情况,那么最好将它放在开头viewDidAppear.但我想在大多数情况下,如果用户进入视图,您只需要检查一次


推荐阅读
author-avatar
坏坏纯1990_440
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有