質問: Auth.auth().addStateDidChangeListener { (auth, user) in // ... } これが、もお理解できません。リスナーを設定 とはなんのことなのでしょうか? また、どういう時にこのコマンドをつかうのでしょうか? __________________________________ ログインしているユーザーに関する情報を必要とするアプリの各ビューに対して、FIRAuth オブジェクトにリスナーをアタッチします。このリスナーは、ユーザーのログイン状態が変わるたびに呼び出されます。 __________________________________ この説明もわかりません。どういう機能なのでしょうか? ビュー コントローラの viewWillDisappear メソッドでリスナーをデタッチ・・・ Auth.auth().removeStateDidChangeListener(handle!) ここもよくわかりません。サンプルの例も複雑すぎて・・・ (そのあとの 新しいユーザーを登録する は理解できました) 概念だけでも教えていただけないでしょうか? キーワードだけでもいただけたらそこから調べていこうと思います 公式のサンプルは難しすぎて読み取れず・・・ よろしくお願いします
回答: FirebaseのAuthのインスタンスに対し、「ユーザーの状態が変化したらこの関数を実行してください」と関数を登録することです。 デタッチはこの場合、もう必要ないので実行しなくてよいですと連絡することです。 コメントに対する追記: addStateDidChangeListener(_:)のReferenceより > > Registers a block as an auth state did change listener. To be invoked when: > > > The block is registered as a listener, > > A user with a different UID from the current user has signed in, or > > The current user has signed out. > > > 登録するるとすぐに1度関数が呼ばれるみたいですね。 リスナーは使わなくなったらデタッチする必要があります。 デタッチせずに放置すると通常は問題が発生します。 発生する問題にはいろいろ考えられますが、最悪アプリがクラッシュすることまであります。 iOSではガイドにあるように > > ビュー コントローラの viewWillAppear メソッドでリスナーをアタッチします。 > > ビュー コントローラの viewWillDisappear メソッドでリスナーをデタッチします。 > > > を守っておけばそれほど問題はないでしょう。