0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SwiftとFirebaseを使ってログイン認証作成

Posted at

使用した技術Firebaseを使用してログイン機能を実装していく
1.まずはどんな流れで処理を作成することができるのか大まかに理解する
FirebaseをAppleプロジェクトに追加する

以下のURLの手順通りに作業を行う
https://firebase.google.com/docs/ios/setup?hl=ja

ここまでの作業が完了したら、ソースコードを書いていく。

2.実装

2-1.AppDelegateの作成
1の手順の中にFirebaseApp共有インスタンスを構成するとあるため、AppDelegateを作成しなければならない。
SwiftUIを使用している場合には、AppDelegateは作成されないため自分で作成する必要がある。

インフォメーション
AppDelegateとはiOSアプリ起動時など特定のライフサイクルの中で呼ばれる処理のこと。

qiita.Swift
// 以下のソースコードをプロジェクト名App.swiftファイルに追加する
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
qiita.Swift
@main
struct morutokuApp: App {
    // 追加されたソースコード
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    var body: some Scene {
        WindowGroup {
            NavigationView{
                ContentView()
            }
        }
    }
}

警告
上のソースコードを追加しただけだとAppDelegateクラスが作成されていないため、エラーとなる。
したがって、クラスを作成していく。

qiita.Swift
// AppDelegateクラス
class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication,
                    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        // FirebaseApp共有インスタンスの構成
        FirebaseApp.configure()
        return true
    }
}

2-2.新規ユーザ作成

ログインにまつわるドキュメントURL:https://firebase.google.com/docs/auth/ios/manage-users?hl=ja

今回はメールアドレスとパスワードを作成して、新規ユーザー作成を行う。

qiita.Swift
// Auth.auth().createUserはFirebaseのPackageで定義されているもの
// ドキュメントを参考にログインにまつわる処理を作成することができる
Auth.auth().createUser(withEmail: mail_s, password: password_s) { result, error in
                        if let user = result?.user {
                                let request = user.createProfileChangeRequest()
                            request.displayName = mail_s
                                request.commitChanges { error in
                                    if error == nil {
                                        user.sendEmailVerification() { error in
                                            if error == nil {
                                                print("仮登録画面へ")
                                            }
                                        }
                                    }
                                }
                            }
                    }

ここまでの処理を行うことでFirebase上に新規ユーザーが作成されることを確認した。

3.ログイン認証について
参考URL:https://firebase.google.com/docs/auth/ios/start?hl=ja

ログインボタンを実装し、ログインボタンを押下した時に以下の処理を記載する。

qiita.Swift
Auth.auth().signIn(withEmail: mail_s, password: password_s) { result, error in
// ログインが成功後の処理を以下に記載していく
                    }

ユーザーが存在していれば、ログインが成功する。

続きはアプリの作成が進んだら記事にします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?