Einführung in Firebase

Wir befinden uns in einer Zeit des Rapid Prototyping. Wir bekommen vielleicht gute Ideen, aber manchmal werden sie nicht umgesetzt, wenn sie zu viel Arbeit benötigen. Oft ist das Backend der limitierende Faktor - viele Ideen werden aufgrund mangelnden Wissens oder Zeit für serverseitige Codierung nie implementiert.

Als mobiler Entwickler können Sie mithilfe einer Back-End-Service-Plattform (BaaS) Ihre Ideen schnell umsetzen.

Firebase bietet alle wichtigen Funktionen, die Sie für ein schnelles Prototyping und ein schnelles Testen Ihrer Ideen benötigen. Mit Firebase können Sie die Erstellung von Funktionen wie Authentifizierung, Datenbank und Objektspeicherung verknüpfen. Firebase enthält auch andere Funktionen, die zur Validierung von Prototypen nützlich sein können, z. B. Analyse, A / B-Tests und Push-Benachrichtigungen. 

Das Beste ist, dass Firebase für kleine Projekte kostenlos ist!

Konfigurieren Sie eine iOS-App für die Verwendung von Firebase

Erstellen wir ein Xcode-Beispielprojekt, das Firebase verwendet. Wir werden es nennen MyFirstFirebaseApp.

Erstellen Sie ein neues Xcode-Projekt

Wähle ein Einzelansicht App Vorlage für Ihr Projekt.

Nun, da das Projekt erstellt wurde, beginnen wir mit der Konfiguration für Firebase.

Erstellen Sie eine Poddatei

CocoaPods ist ein Abhängigkeitsmanager für Swift- und Objective-C-Cocoa-Projekte. Wir müssen es in unserem Projekt initialisieren. Dies kann mit dem gemacht werden pod init Befehl.

$ cd Ihr Projektverzeichnis $ pod init

Fügen Sie die Firebase-Pods hinzu 

Wir möchten das hinzufügen Firebase / Kern Pod zu unserem Projekt. Dazu gehören die erforderlichen Bibliotheken, die erforderlich sind, um Firebase in Betrieb zu nehmen. 

$ pod 'Firebase / Core'

So ist jetzt dein Poddatei aussehen wird:

Installieren Sie die Pods und öffnen Sie das Projekt in Xcode

Nachdem Sie die Pod-Details hinzugefügt haben, installieren Sie sie mit pod installieren Befehl. Dann können wir das Projekt in Xcode öffnen, indem Sie das öffnen .xcworkspace Datei.

$ pod install $ open your-project.xcworkspace

Erstellen und konfigurieren Sie Ihr Firebase-Konto

Erstellen Sie ein Firebase-Konto

Lassen Sie uns jetzt einen Firebase-Account einrichten! Wie wir alle wissen, handelt es sich bei Firebase um ein Google-Produkt. Daher können wir mit unserem Google Mail-Konto ein Konto für die Firebase-Konsole erstellen. 

Beachten Sie jedoch: Firebase ist nicht vollständig kostenlos. Wir können mit einer kostenlosen Version für das anfängliche Prototyping beginnen. Wenn Sie jedoch planen, mit Firebase in Produktion zu gehen, sollten Sie sich der Preisstruktur bewusst sein. 

Erstellen Sie ein neues Projekt in der Firebase-Konsole

Nachdem wir uns erfolgreich bei unserem Firebase-Konto angemeldet haben, erstellen wir ein Projekt. Klicke auf Projekt hinzufügen.

Nachdem das Projekt erstellt wurde, können die Firebase-Datenbank, die Benutzerverwaltung und die Remote-Konfiguration für iOS, Android und das Web gemeinsam genutzt werden.

Sobald das Projekt erstellt wurde, gelangen Sie zum Projektübersicht Bildschirm. Unter Loslegen, klicke auf iOS um mit unserem iOS-Prototyp zu beginnen.


Registrieren Sie die App für iOS

Um unsere App zu registrieren, müssen wir eine Projektkennung angeben.

Klicken Sie jetzt auf App registrieren. Sie werden aufgefordert, eine Datei herunterzuladen .plist Datei, die zu Ihrem Xcode-Projekt hinzugefügt werden muss.

Diese GoogleService-Info.plist enthält grundlegende Informationen wie Client-ID, API-Schlüssel, Datenbank-URL und Speicherbereich. Schau es dir an und sieh nach dem Download. Sie müssen es dann zu Ihrem Projekt hinzufügen, indem Sie es in den unten in Xcode gezeigten Ordner ziehen.

Fügen Sie den Initialisierungscode Ihrer App hinzu

Jetzt können Sie den Firebase-Initialisierungscode zu Ihrer App hinzufügen! Öffnen AppDelegate, und importieren Sie Firebase. Dann füge hinzu FirebaseApp.configure () im didFinishLaunchingWithOptions. Ihr Code wird so aussehen:

import UIKit import Firebase @UIApplicationMain-Klasse AppDelegate: UIResponder, UIApplicationDelegate Var-Fenster: UIWindow? func-Anwendung (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool FirebaseApp.configure () gibt true zurück

Stellen Sie sicher, dass Firebase in Ihrer App funktioniert

Damit ist das Setup abgeschlossen und Sie können testen, ob Firebase in Ihrer App ordnungsgemäß installiert ist. Wenn Sie auf klicken Nächster auf der Fügen Sie Firebase zu Ihrer iOS-App hinzu In der Firebase-Konsole sehen Sie Folgendes:  

Lassen Sie uns die App über Xcode bereinigen, erstellen und ausführen - es sollte keine Fehler geben. In Ihrer Konsole finden Sie auch einige Protokolle, die sich auf Firebase beziehen. Wenn alles richtig funktioniert, werden Sie über die Firebase-Konsole informiert.

Hurra! Nun haben wir Firebase erfolgreich für unsere App eingerichtet. 

Firebase-Benutzerverwaltung

Wie bereits erwähnt, kann Firebase für die Benutzerverwaltung verwendet werden. Lassen Sie uns also unsere App für die Authentifizierung und Verwaltung der Benutzer einrichten. Lassen Sie uns zunächst wie im Folgenden gezeigt zum Abschnitt Authentifizierung im Firebase-Dashboard navigieren.

Klicke auf Richten Sie die Anmeldemethode ein. Hier sehen wir eine Reihe von Möglichkeiten. Sie können mehrere auswählen, oder wenn Sie keine Anmeldung wünschen, können Sie wählen Anonym

  • E-Mail Passwort: Benutzer können sich mit ihrer E-Mail-Adresse und ihrem Passwort anmelden. Firebase-SDKs bieten auch die Überprüfung der E-Mail-Adresse, die Wiederherstellung des Passworts und die Änderung der E-Mail-Adresse.
  • Telefon: Ermöglichen Sie Benutzern die Anmeldung mit einer Mobiltelefonnummer mithilfe der Telefonbestätigungs- und Benutzerauthentifizierungstools von Firebase SDK. Im Rahmen des kostenlosen Spark-Plans von Firebase erhalten Sie 10.000 Telefonanmeldungen pro Monat. Danach müssen Sie jedoch bezahlen. Schauen Sie sich den Preisbereich an, bevor Sie sich dafür entscheiden. 
  • Google: Die Google-Anmeldung wird automatisch in Ihren verbundenen iOS- und Web-Apps konfiguriert. Um die Google-Anmeldung für Ihre Android-Apps einzurichten, müssen Sie in den Projekteinstellungen für jede App einen SHA1-Fingerabdruck hinzufügen.
  • Spiele spielen: Konfigurieren Sie die Client-ID und das Client-Secret.
  • Facebook: Um Facebook für die Authentifizierung zu verwenden, müssen Sie einen OAuth-Umleitungs-URI zur Konfiguration Ihrer Facebook-App hinzufügen.
  • Twitter: Um Twitter für die Authentifizierung zu verwenden, fügen Sie Ihrer Twitter-App-Konfiguration eine Rückruf-URL hinzu.
  • GitHub: Um die Authentifizierung mit GitHub einzurichten, fügen Sie Ihrer GitHub-App-Konfiguration eine Autorisierungsrückruf-URL hinzu.
  • Anonym: Wählen Sie diese Option aus, um anonyme Gastkonten in Ihrer Anwendung zu aktivieren. Dadurch können Sie benutzerspezifische Sicherheits- und Firebase-Regeln erzwingen, ohne dass Anmeldeinformationen von Ihren Benutzern erforderlich sind.

Konfigurieren Sie die Telefonauthentifizierung

Mal sehen, wie wir ein Telefon als Anmeldemethode verwenden können.

Navigiere zuerst zu Anmeldemethode, klicke auf Telefon, und aktivieren Sie es. Sie sehen einen Bildschirm wie diesen:

Sie müssen auch das angeben Firebase / Auth Pod in Ihrem Poddatei.

 pod 'Firebase / Auth'

Nachdem Sie die obige Zeile in Ihre Pod-Datei eingefügt haben, navigieren Sie zum Projektordner und führen Sie das aus pod installieren Befehl.

Als Nächstes müssen Sie Push-Benachrichtigungen in Ihrem Xcode-Projekt aktivieren.

Um diese Einstellung zu finden, wählen Sie Ihre App aus Ziele und klicken Sie auf Fähigkeiten Tab. Von dort aus können Sie aktivieren Mitteilungen.

reCAPTCHA-Überprüfung 

Lassen Sie uns nun die reCAPTCHA-Überprüfung konfigurieren. reCAPTCHA wird verwendet, wenn das Senden oder Empfangen einer stillen Push-Benachrichtigung nicht möglich ist, z. B. wenn der Benutzer die Hintergrundaktualisierung für Ihre App deaktiviert hat oder wenn Sie Ihre App auf einem iOS-Simulator testen. In diesem Fall verwendet die Firebase-Authentifizierung die reCAPTCHA-Überprüfung, um den Telefonanmeldungsablauf abzuschließen.

Klicke auf GoogleService-Info.plist in Xcodes linkem Feld, um die Liste zu öffnen. Kopieren Sie jetzt den Wert von REVERSED_CLIENT_ID in TextEdit oder einen anderen Notizblock. 

Gehen Sie als Nächstes zu Ziele > Ihre App> Info > URL-Typen. Klicken Sie auf die Schaltfläche "+" und kopieren Sie die REVERSED_CLIENT_ID Wert in URL-Schemata, Wie nachfolgend dargestellt.

Konfigurieren Sie Firebase Cloud Messaging

Jetzt konfigurieren wir Firebase Cloud Messaging mit den APNs unserer App.

Öffnen Sie die Firebase Console und klicken Sie auf die die Einstellungen Knopf, den Sie sehen werden Projekt Einstellungen und Benutzer und Berechtigungen. Klicke auf Projekt Einstellungen und dann die Cloud Messaging Tab. Auf diesem Bildschirm finden Sie den Abschnitt zur Konfiguration der iOS-App. 

Um Firebase Cloud Messaging zu aktivieren, laden wir unsere APNs und unseren APNs-Authentifizierungsschlüssel in dieses Dialogfeld hoch.

Sie müssen einen APNs-Authentifizierungsschlüssel und einen APNs-Zertifikatschlüssel erstellen.

Schritte zum Erstellen eines APNs-Authentifizierungsschlüssels 

  • Gehen Sie in Ihrem Entwicklerkonto zu Zertifikate, Identifikatoren und Profile, und unter Schlüssel, wählen Alles
  • Klicken Sie auf die Schaltfläche Hinzufügen (+) in der oberen rechten Ecke. 
  • Geben Sie eine Beschreibung für den APNs-Authentifizierungsschlüssel ein.
  • Unter Schlüsseldienstleistungen, wähle aus APNs Kontrollkästchen und klicken Sie auf Fortsetzen.
  • Klicken Bestätigen und dann Herunterladen. Bewahren Sie Ihren Schlüssel an einem sicheren Ort auf! Dies ist ein einmaliger Download und der Schlüssel kann später nicht abgerufen werden.

Schritte zum Erstellen eines APNs-Zertifikatsschlüssels

  • Erstelle ein App-ID von Ihrem Apple-Entwicklerkonto aus und aktivieren Push-Benachrichtigung beim Erstellen. Eine App-ID ist eine Kennung, die eine App eindeutig identifiziert. Konventionell wird es durch eine umgekehrte Domain mit Ihrem Firmennamen und dem App-Namen dargestellt (z. com.mysoft.myfirstfirebaseApp).
  • Ein ... kreieren Provisionierungs Profil für die obige App-ID. 

Und das ist es! Nun sind wir mit allen Konfigurationen fertig und können den Registrierungs- und Anmeldungsablauf implementieren.

Registrieren eines Benutzers mit der Telefonauthentifizierung

Gehen wir zurück zu Xcode und erstellen Sie das RegistrationViewController.swiftRegistrationViewController.storyboard, und RegistrationService.swift Dateien.

Für das Storyboard habe ich ein UITextField und ein UIButton hinzugefügt (siehe unten). Diese sollten in verlinkt sein RegistrationViewController.swift.

So ist mein RegistrationViewController.swift aussehen wird: 

import Foundation UIKit-Klasse importieren RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet schwache Var phoneNumber: UITextField! func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped überschreiben (_ sender: Any) 

Da unser Hauptaugenmerk auf Firebase liegt, werden wir UITextFieldDelegates nicht implementieren. Um es einfach zu halten, erfassen wir den Text beim Klicken auf die Schaltfläche. 

Fügen wir nun den folgenden Code hinzu RegistrationService.swift.

importieren Sie die FirebaseAuth-Klasse RegistrationService func getVerificationId (phoneNumber: String, completionHandler: @escaping (String ?, Error?) -> Void) PhoneAuthProvider.provider () let Fehler = Fehler CompletionHandler (Null, Fehler) wenn Let ID = Verifizierungs-ID CompletionHandler (Id, Null) 

In diesem Code, PhoneAuthProvider.provider (). VerifyPhoneNumber nimmt eine Telefonnummer als Eingabe und schickt uns die zurück prüfungsID. Dadurch wird auch eine einmalige Kennwortnachricht (OTP) an die im Textfeld angegebene Telefonnummer gesendet. Der Benutzer erhält das OTP auf seinem Telefon und gibt es in einem Benachrichtigungsdialogfeld in der App ein.

Hinweis: Achten Sie bei der Eingabe der Telefonnummer darauf, dass auch die Landesvorwahl eingegeben wird.

Beachten Sie auch, dass wir daran denken müssen importiere FirebaseAuth am oberen Rand der Datei.

Gehen wir jetzt zurück zu RegistrationViewController.swift und Ruf an getVerificationId, Wie nachfolgend dargestellt. Hier drucke ich die ID auf die Konsole, um zu prüfen, ob dies der Fall ist Überprüfungs-ID wurde generiert.

import Foundation UIKit-Klasse importieren RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet schwache Var phoneNumber: UITextField! Überschreiben Sie func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Beliebig) Wenn sich telefonnummer = phoneNumber.text RegistrationService () ! = nil return wenn let id = id print (id)

Die Anmeldemethode

Nun schreiben wir eine Anmeldemethode in RegistrationService. Hier erstellen wir ein Firebase-Berechtigungsobjekt-Objekt unter Verwendung von verifyId und OTP. So wird der Code aussehen:

 func signIn (Überprüfungs-ID: Zeichenfolge, Überprüfungscode: Zeichenfolge, completionHandler: @escaping (Zeichenfolge?, Fehler?) -> Void) let credential = PhoneAuthProvider.provider (). ) .signIn (mit: credential) (Benutzer, Fehler) in, wenn Fehler = Fehler CompletionHandler ("Fehler", Fehler) CompletionHandler ("Erfolg", Null)

Sobald wir die ID erhalten haben, wird eine Warnmeldung für den Benutzer angezeigt, um das OTP zu erfassen und die Einloggen Methode in RegistrationService. Hier ist was der RegistrationViewController wird nach diesen Änderungen aussehen: 

import Foundation UIKit-Klasse importieren RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet schwache Var phoneNumber: UITextField! Überschreiben Sie func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Beliebig) Wenn sich telefonnummer = phoneNumber.text RegistrationService () ! = nil return if let id = id self.displayAlert (id: id) func displayAlert (id: String) let alertController = UIAlertController (Titel: "OTP?", Nachricht: "", bevorzugterStil) : .alert) let cancelAction = UIAlertAction (title: "Cancel"), Stil: .default, handler: (Aktion: UIAlertAction!) -> Void in) let saveAction = UIAlertAction (Titel: "Save", style: .default.) , Handler: alert -> Void in let otpText = alertController.textFields! [0] als UITextField, wenn let otp = otpText.text print (otp) RegistrationService (). signIn (Verifizierungs-ID: id, verifyCode: otp) (status , error) in if error! = nil return print ("SignIn-Status", Status ?? "Unknown")) alertController.addTextField (textField: UITextField!) -> Void in textField.placeholder = "OTP "  alertController.addAction (cancelAction) alertController.addAction (saveAction) self.present (alertController, animiert: true, Completion: nil)

Jetzt können Sie Ihre App ausführen, um sie auszuprobieren. Hier sehen Sie, wenn Sie klicken OTP anfordern.

Nun wird der Anmeldestatus als gedruckt Erfolg. Wir können in Firebase Console überprüfen, ob ein Benutzer erstellt wurde. 

Fazit

In diesem Tutorial haben wir eine einfache App mit Xcode und Firebase entwickelt. Hoffentlich haben Sie einige neue Fähigkeiten erworben, die Sie in Ihren anstehenden Projekten in die Praxis umsetzen können. 

Wenn Sie Fragen haben, lassen Sie es mich in den Kommentaren wissen.