はじめに
こんにちは〜、初めましての投稿になりまーす。
初心者ですが、よろしくですっ🐝
本題
頑張りましょう
fFirebaseに登録
1,とりあえずFirebaseを開いてもろて「使ってみる」を選択。
2,そしたら次に、「プロジェクトを作成」を選択。
3,そこからは流されるままに、『プロジェクト名」の作成、
チェック項目は特に理由がない限り全部チェック
Firebaseとswiftの連携
こんな画面になると思います、そうしたら一番左の『iOS+」を選択
ここからは勘ではむずいです
そうされましたら、こんな登録画面が出現と思います
ここのバンドルIDとかニックネームとかしっかりやりたい人はすればいいと思いますけど、適当にしていただいて結構です。入力終わりましたら「アプリを登録」を押していただきまして次に、
こんなのが出現すると思いますが飛ばしてください。
めっちゃしたいと思いますが飛ばしてください。すると
次はこんなのが出てきます。飛ばしていいですこれまじで。
次がラスボスです
飛ばして下さい、後悔させません(多分)
そうしたらサイドバー的なところの構成から
「Authentication」を選択。
「始める」を押していただいたら
とりあえず「メール/パスワード」を選択していただきたく
Gmailはまた後でのお楽しみということに…
そしていつものごとくチェックをつけて保存してください🌾
そうされましたらまたサイドバー的なところの⚙️マークを押してください
そうするとプロジェクトの設定ページに飛ぶと思います。そしたらちょっとスクロールして、SDKの設定というとこにいってください。
そこからGoogleService-Info.plistをダウンロード
ここまでがFirebaseですることです。お疲れ様です。まだ続きますが…
Xcodeですること
まずは先ほどダウンロードしたGoogleService-Info.plistをプロジェクトのContentView.swiftとかがあるファイルにぶち込んでください。
それが終わりましたら、Xcodeでプロジェクトファイルを右クリックしてAdd package Dependecies...を押してくださいな
右クリックってトラックパッドの右を2本指で長押しするとできます
僕は最近知りました。感動です
そうしたら検索ボックスで
https://github.com/firebase/firebase-ios-sdk
こちらを検索。そしたらAdd Packageするんだけど
このまましてもできません!
そこでDependency Ruleを押して
Branchを選択しmainと入力します。
多分ここが一番つまずきます
そしたらAdd Packageしてもらうんですけど
こんなのが出てきたら「FirebaseAuth」だけAdd to targetを「none」じゃなくしてAddしちゃってください!
そしたら次に
https://github.com/firebase/firebase-ios
こちらを検索してください、
またBranch → 「main」入力の作業をしてください
そうしたら今度は「FirebaseAuthUI」、「FirebaseOAuthUI」、「FirebaseEmailAuthUI」をnoneから除外!
そうしたら難しいのはここまであとはコピペでナントカしましょう
まずはLoginView.swift
import SwiftUI
import FirebaseAuth
import FirebaseAuthUI
import FirebaseOAuthUI
import FirebaseEmailAuthUI
struct LoginView: View {
@State var email: String = ""
@State var password: String = ""
@State var ErrorMessage: String = ""
var body: some View {
ZStack {
Color(.secondarySystemBackground)
.ignoresSafeArea()
TextField("email", text: $email)
.textFieldStyle(myTextStyle())
.frame(width : 300)
.offset(y : -50)
TextField("password", text: $password)
.textFieldStyle(myTextStyle())
.frame(width : 300)
Button(action: {
SignUp()
}, label: {
Text("SignUp")
})
.padding()
.offset(y : 50)
Text(ErrorMessage)
.padding()
.foregroundColor(.red)
.offset(y : 100)
}
}
func SignUp() {
Auth.auth().createUser(withEmail: email, password: password) { result, error in
if error == nil {
ErrorMessage = "Done"
}
else {
if let errorCode = AuthErrorCode(rawValue: error!._code) {
switch errorCode {
case .invalidEmail:
ErrorMessage = "Invalid Email"
case .weakPassword:
ErrorMessage = "Weak Password"
case .emailAlreadyInUse:
ErrorMessage = "Email Already In Use"
case .wrongPassword:
ErrorMessage = "Wrong Password"
default:
ErrorMessage = "Error"
}
}
}
}
}
}
#Preview {
LoginView()
}
最後にトッピング(かなり重要)
@mainが存在するファイルに
まずなんもないとことに
import FirebaseCore
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
FirebaseApp.configure()
return true
}
}
こちらを追加、そして@mainのスコープに
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
こちらを追加。これで終わりです