Firebase ログインuserのオブザーバー
SwiftでFirebaseLoginしたけど、各Viewに来た時にLoginしているか、そうでないかの判定をするときの実装を説明します。
ポイント
viewWillAppearに実装
addStateDidChangeListener関数を利用
Loginしていない時は、ログイン画面に遷移させる
//その画面が表示される度に呼ばれる関数 override func viewWillAppear(_ animated: Bool) { //AuthのaddStateDidChangeListenerを利用する 返却されるuserでログイン判定できる handle = Auth.auth().addStateDidChangeListener({ (auth, user) in //usre== nil つまり、ログインしていないなら if user == nil{ //どのストーリーボードか教えてあげる let storyboard = UIStoryboard(name: "Main", bundle: nil) let loginVC = storyboard.instantiateViewController(withIdentifier: "LoginVC") self.present(loginVC, animated: true) } else { self.setListener() } })