Swift & Firebase

Aus Wikizone
Wechseln zu: Navigation, Suche

Links[Bearbeiten]

Swift (Programmiersprache)

Quickstart[Bearbeiten]

  • Projekt in Firebase anlegen
  • Firebase zur App hinzufügen
    • Plattform auswählen (iOS) (die nachfolgenden Schritte werden ganz gut erklärt)
    • App Registrieren
      • mind. Bundle-Identifier der App hinzufügen
    • Konfigurationsdatei laden und zur App hinzufügen (Stammverzeichnis wo auch Info.plist liegt)
    • Firebase SDK hinzufügen (mehrere Möglichkeiten z.B. Cocoapods oder Swift Package Manager)
    • Initialisierungscode zu AppDelegate.swift hinzufügen
      • Hier importierst und initialisierst du Firebase. Den passenden Code für Swift, SwiftUI oder Apps mit ObjC hinzufügen. Schau einfach den Code der AppDelegate an, dann findest du die passenden Ergänzungen.Z.B.
import FirebaseCore
// ..
FirebaseApp.configure() // in didFinishLaunchingWithOptions

Beispiele[Bearbeiten]

Integration in der App[Bearbeiten]

//
//  AppDelegate.swift
//

import UIKit
import FirebaseCore // Import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        FirebaseApp.configure()
        return true
    }
// ...
}

User Registration mit Firebase[Bearbeiten]

Passwort Authentication: Hier nur wenige Zeilen notwendig. Die User kannst du dann in deinem Firebase Backend anschauen.

https://firebase.google.com/docs/auth/ios/password-auth
//  RegisterViewController.swift
import UIKit
import FirebaseCore
import FirebaseAuth

class RegisterViewController: UIViewController {

    @IBOutlet weak var emailTextfield: UITextField!
    @IBOutlet weak var passwordTextfield: UITextField!
    
    @IBAction func registerPressed(_ sender: UIButton) {
        if let email = emailTextfield.text, let password = passwordTextfield.text {
            Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
                if let e = error {
                    // Handle errors here
                    print(e.localizedDescription)
                }else{
                    // Navigate to ChatViewController
                    self.performSegue(withIdentifier: "RegisterToChat", sender: self)
                }
            }
        }

    }
}

LogIn[Bearbeiten]

//  LoginViewController.swift

import UIKit
import FirebaseFirestore
import FirebaseAuth

class LoginViewController: UIViewController {

    @IBOutlet weak var emailTextfield: UITextField!
    @IBOutlet weak var passwordTextfield: UITextField!
    
    @IBAction func loginPressed(_ sender: UIButton) {
        if let email = emailTextfield.text, let password = passwordTextfield.text{
            Auth.auth().signIn(withEmail: email, password: password) { authResult, error in
                if let e = error{
                    print(e.localizedDescription)
                } else {
                    self.performSegue(withIdentifier: "LoginToChat", sender: self)
                }
            }
        }
    }
}