我已经在我的Swift应用中实现了Firebase Google登录。我想在开始时检查其是否已经登录的用户。我这样做是这样的:
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance()?.presentingViewController = self
GIDSignIn.sharedInstance().delegate = self
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(false)
if Auth.auth().currentUser != nil {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "feedVC")
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: false)
}
}
现在我的问题是:它可以按我想要的方式工作,但是速度很慢。在显示主页之前,我仍然可以快速浏览登录屏幕。
现在,如果我想将currentUser检查添加到viewDidLoad中,则应用程序不会检查用户之前是否已经登录。
有什么建议吗?
在主线程上执行
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(false)
if Auth.auth().currentUser != nil {
DispatchQueue.main.async {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "feedVC")
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: false)
}
}