[Swift/FirebaseAuth] 한 번 로그인하면 로그인 화면을 건너뛰는 방법

Firebase Authentication을 사용하여 사용자를 인증하는 앱을 만들 때 한 번 신규 등록·로그인을 하면 다음 앱을 열 때 로그인 화면을 건너뛰는 코드를 소개합니다.

이 기사에서는 이미 FirebaseAuth를 사용하여 신규 등록·로그인 화면과 처리가 완성되어 있다고 가정합니다. 이러한 방법은 Firebase Official Doc 가 정중하게 설명해 주므로 참고해 주세요!

코드



이 처리는 SceneDelegate.swift 로 실시합니다.
먼저 FirebaseAuth 라이브러리를 가져옵니다.

SceneDelegate.swift
import FirebaseAuth

SceneDelegate 클래스에 다음 메서드를 씁니다.

SceneDelegate.swift
    func skipLogin() {
         //使ってるストーリーボード(何もいじってない限り ファイル名は"Main.storyboard" なので "Main" と記入。
         let storyboard = UIStoryboard(name: "Main", bundle: nil)

         //ログイン後に飛びたいストーリボード。Identifier は Main.storyboard で設定。
         let homeViewController = storyboard.instantiateViewController(identifier: "HomeVC")

         //rootViewController (初期画面)を homeViewController にする。
         window?.rootViewController = homeViewController

         //画面を表示。
         window?.makeKeyAndVisible()
     }


덧붙여서 storyboard ID는 여기에서 설정합니다.

skipLogin() 메소드가 쓰여지면 나머지는 다음 메소드 안으로 부를 뿐입니다!

SceneDelegate.swift
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        guard let _ = (scene as? UIWindowScene) else { return }

        -----ここから付け足す-----
        //もし一度ログインしたユーザーだったら skipLogin() を呼ぶ。
        if Auth.auth().currentUser != nil {
           skipLogin()
        }
        //rootController がデフォルトで新規登録・ログイン画面についていれば else文はいらない。
    }


이제 한 번 로그인하면 다음부터 로그인 화면을 건너 뛸 수 있습니다!

좋은 웹페이지 즐겨찾기