使用した技術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アプリ起動時など特定のライフサイクルの中で呼ばれる処理のこと。
// 以下のソースコードをプロジェクト名App.swiftファイルに追加する
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
@main
struct morutokuApp: App {
// 追加されたソースコード
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
NavigationView{
ContentView()
}
}
}
}
警告
上のソースコードを追加しただけだとAppDelegateクラスが作成されていないため、エラーとなる。
したがって、クラスを作成していく。
// 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
今回はメールアドレスとパスワードを作成して、新規ユーザー作成を行う。
// 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
ログインボタンを実装し、ログインボタンを押下した時に以下の処理を記載する。
Auth.auth().signIn(withEmail: mail_s, password: password_s) { result, error in
// ログインが成功後の処理を以下に記載していく
}
ユーザーが存在していれば、ログインが成功する。
続きはアプリの作成が進んだら記事にします。