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!
Erstellen wir ein Xcode-Beispielprojekt, das Firebase verwendet. Wir werden es nennen MyFirstFirebaseApp.
Wähle ein Einzelansicht App Vorlage für Ihr Projekt.
Nun, da das Projekt erstellt wurde, beginnen wir mit der Konfiguration für Firebase.
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
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:
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
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.
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.
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.
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
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.
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.
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.
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.
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.
Und das ist es! Nun sind wir mit allen Konfigurationen fertig und können den Registrierungs- und Anmeldungsablauf implementieren.
Gehen wir zurück zu Xcode und erstellen Sie das RegistrationViewController.swift, RegistrationViewController.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)
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.
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.