Vi är i en tid med snabb prototypning. Vi kan få ljusa idéer, men ibland blir de inte implementerade om de tar för mycket arbete. Ofta är back-end den begränsande faktorn - många idéer blir aldrig implementerade på grund av bristande kunskap eller tid för kodning av server-sidor.
Som mobilutvecklare, med hjälp av ett back-end som en tjänst (BaaS) -plattform kan du snabbt implementera dina idéer.
Firebase har alla nyckelfunktioner du behöver för snabb prototyper och snabbt testa dina idéer. Med Firebase kan du genväga skapandet av funktionalitet som autentisering, databas och objektlagring. Firebase levereras också med andra funktioner som kan vara användbara för att validera prototyper, t.ex. analys, A / B-testning och push-meddelanden.
Bäst av allt är Firebase gratis för små projekt!
Låt oss skapa ett Xcode-projekt som använder Firebase. Vi heter det MyFirstFirebaseApp.
Välj en Enkel visningsprogram mall för ditt projekt.
Nu när projektet är skapat, låt oss börja konfigurera det för Firebase.
CocoaPods är en dependence manager för Swift och Objective-C Cocoa-projekt. Vi måste initialisera det i vårt projekt. Detta kan göras med pod init
kommando.
$ cd din-projekt katalog $ pod init
Vi vill lägga till Firebase / Kärna pod till vårt projekt. Detta inkluderar de nödvändiga bibliotek som behövs för att Firebase ska kunna fungera.
$ pod 'Firebase / Core'
Nu är det här så Podfile ska titta:
Efter att ha inkluderat pod detaljer, låt oss installera dem med pod installera
kommando. Då kan vi öppna projektet i Xcode genom att öppna .xcworkspace fil.
$ pod installera $ öppna din-project.xcworkspace
Låt oss nu börja med ett Firebase-konto! Som vi alla vet är Firebase en Google-produkt, så vi kan skapa ett Firebase Console-konto med vårt Gmail-konto.
Observera dock: Firebase är inte helt fri. Vi kan börja med en fri version för första prototyper, men om du har planer på att gå i produktion med Firebase så borde du vara medveten om prissättningsstrukturen.
Nu när vi har loggat in på vårt Firebase-konto, låt oss skapa ett projekt. Klicka på Lägg till projekt.
När projektet är skapat kan Firebase-databasen, användarhanteringen och Remote Config delas med iOS, Android och webben.
När projektet har skapats kommer du att tas till Projekt Överblick skärm. Under Komma igång, Klicka på iOS att komma igång på vår iOS prototyp.
För att registrera vår app måste vi ange en projektidentifierare.
Klicka nu Registrera app. Du kommer att bli ombedd att ladda ner en .plist fil som måste läggas till i ditt Xcode-projekt.
Detta GoogleService-Info.plist kommer att innehålla grundläggande information som klient-id, API-nyckel, databasadress och lagringshink. Ta en titt och se när du hämtar den. Du måste sedan lägga till det i ditt projekt genom att dra det till mappen som visas nedan i Xcode.
Nu kan du lägga till Firebase-initialiseringskoden till din app! Öppna AppDelegate
, och importera Firebase. Sen Lägg till FirebaseApp.configure ()
i didFinishLaunchingWithOptions
. Din kod kommer att se ut så här:
importera UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate var fönster: UIWindow? func application (_ ansökan: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool FirebaseApp.configure () return true
Inställningen är äntligen klar och du är redo att testa att Firebase är installerat korrekt i din app. När du klickar Nästa på Lägg till Firebase i din iOS-app sida i Firebase Console ser du detta:
Låt oss rena, bygga och köra appen via Xcode-det borde inte finnas några fel. Du kan också se några loggar relaterade till Firebase i din konsol. Om allt fungerar rätt kommer Firebase Console att låta dig veta.
Hurra! Nu har vi lyckats ställa in Firebase för vår app.
Som tidigare nämnts kan Firebase användas för användarhantering, så låt oss ställa in vår app för autentisering och hantering av användare. Låt oss först navigera till Authentication-sektionen i Firebase Dashboard, som visas nedan.
Klicka på Ställ in inloggningsmetod. Här kan vi se ett antal möjligheter. Du kan välja mer än en, eller om du föredrar att inte ha inloggning, kan du välja Anonym.
Låt oss se hur vi kan använda en telefon som inloggningsmetod.
Först navigera till Inloggningsmetod, Klicka på Telefon, och aktivera det. Du får se en skärm så här:
Du måste också inkludera Firebase / Auth
pod i din Podfile.
pod 'Firebase / Auth'
När du har lagt till ovanstående rad i din Podfile, navigerar du till projektmappen och kör pod installera
kommando.
Därefter måste du aktivera push-meddelanden i ditt Xcode-projekt.
För att hitta den här inställningen, välj din app från mål panel och klicka på Förmågor flik. Därifrån kan du aktivera Pushnotifikationer.
Låt oss nu konfigurera reCAPTCHA-verifiering. reCAPTCHA används om det inte går att skicka eller ta emot en tyst push-meddelande, till exempel när användaren har inaktiverat bakgrundsuppdatering för din app eller när du testar din app på en iOS-simulator. I det här fallet använder Firebase Authentication reCAPTCHA-verifiering för att slutföra inloggningsflödet för telefonen.
Klicka på GoogleService-Info.plist i Xcodes vänstra panel för att öppna plist. Kopiera nu värdet på REVERSED_CLIENT_ID till TextEdit eller annan anteckningsblock.
Därefter, gå till mål > din app> Info > URL-typer. Klicka på "+" knappen och kopiera REVERSED_CLIENT_ID värdet in i URL-system, enligt nedanstående.
Låt oss nu konfigurera Firebase Cloud Messaging med appens APN-nummer.
Öppna Firebase Console, och en gång du klickar på inställningar knappen du kommer att se Projektinställningar och Användare och behörigheter. Klicka på Projektinställningar och sedan Molnmeddelanden flik. På den här skärmen kan du hitta iOS-appkonfigurationssektionen.
För att aktivera Firebase Cloud Messaging laddar vi upp vår APN och vår APNs autentiseringsnyckel till den här dialogrutan.
Du måste skapa en APNs autentiseringsnyckel och en APNs certifikatnyckel.
Och det är allt! Nu är vi färdiga med alla konfigurationer, och vi kan börja implementera registrerings- och inloggningsflödet.
Låt oss gå tillbaka till Xcode och skapa RegistrationViewController.swift, RegistrationViewController.storyboard, och RegistrationService.swift filer.
För storyboardet har jag lagt till en UITextField och UIButton som visas nedan. Dessa bör kopplas in RegistrationViewController.swift.
Så här är min RegistrationViewController.swift ska titta:
import Foundation import UIKit klass RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! åsidosätta func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ avsändare: Any)
Eftersom vårt huvudsakliga fokus ligger på Firebase, kommer vi inte att implementera UITextFieldDelegates. I stället för att hålla sakerna enkla tar vi texten på knappen klicka.
Låt oss nu lägga till följande kod i RegistrationService.swift.
importera FirebaseAuth klass RegistrationService func getVerificationId (telefonnummer: String, completionHandler: @escaping (String ?, Error?) -> Void) PhoneAuthProvider.provider (). verifiera telefonnummer (telefonnummer, uiDelegate: nil) låt fel = fel completionHandler (nil, fel) om låt id = verifieringsID completionHandler (id, nil)
I den här koden, PhoneAuthProvider.provider (). VerifyPhoneNumber
tar ett telefonnummer som inmatning och skickar oss tillbaka verificationID
. Detta utlöser också ett enstaka lösenord (OTP) -meddelande till det telefonnummer som fanns i textfältet. Användaren tar emot OTP på sin telefon och matar in den igen i en varningsdialog i appen.
Obs! Se till att landskoden också anges när du anger telefonnumret.
Observera också att vi måste komma ihåg att importera FirebaseAuth
längst upp i filen.
Nu, låt oss gå tillbaka till RegistrationViewController.swift och ringa getVerificationId
, enligt nedanstående. Här skriver jag idet till konsolen för att kontrollera om verificationId
genererades.
import Foundation import UIKit klass RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! omdirigera func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ avsändare: Any) om låt telefonNumber = phoneNumber.text RegistrationService (). getVerificationId (phoneNumber: phoneNumber) (id, fel) i om fel ! = nil return om låt id = id print (id)
Låt oss nu skriva in en inloggningsmetod i RegistrationService. Här skapar vi ett Firebase Credential-objekt med verificationId och OTP. Så här ser koden ut:
func signIn (verificationId: String, verificationCode: String, completionHandler: @escaping (String ?, Error?) -> Void) Låt credential = PhoneAuthProvider.provider (). credential (withVerificationID: verificationId, verifieringskod: verifieringskod) Auth.auth ) .signIn (med: credential) (användare, fel) i om låta fel = fel completionHandler ("Error", error) completionHandler ("Succes", noll)
När vi fått idet visar vi en varningsvy för användaren att fånga OTP och ringa till logga in
metod i RegistrationService
. Här är vad RegistrationViewController
kommer att se ut efter dessa förändringar:
import Foundation import UIKit klass RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! omdirigera func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ avsändare: Any) om låt telefonNumber = phoneNumber.text RegistrationService (). getVerificationId (phoneNumber: phoneNumber) (id, fel) i om fel ! = nil return om låt id = id self.displayAlert (id: id) func displayAlert (id: String) let alertController = UIAlertController (titel: "OTP?", meddelande: "", preferredStyle : .alert) låt cancelAction = UIAlertAction (title: "Cancel", stil: .default, handler: (action: UIAlertAction!) -> Void in) låt saveAction = UIAlertAction (titel: "Spara", stil: .default , handler: alert -> Avbryt i låt otpText = alertController.textFields! [0] som UITextField om låt otp = otpText.text print (otp) RegistrationService (). signIn (verifiering: id, verifieringskod: otp) , fel) i om fel! = nil return print ("SignIn status", status ???) Okänd))) alertController.addTextField (textField: UITextField!) -> Radera i textField.placeholder = "OTP " alertController.addAction (cancelAction) alertController.addAction (saveAction) self.present (alertController, animerad: true, completion: nil)
Nu kan du köra din app för att prova den - här är vad du ska se när du klickar på Begär OTP.
Nu kommer inloggningsstatusen att skrivas ut som Framgång. Vi kan kolla in Firebase Console som en användare har skapats.
I den här handledningen byggde vi en enkel app med Xcode och Firebase. Förhoppningsvis har du fått några nya färdigheter som du kan genomföra i dina kommande projekt.
Om du har några frågor, låt mig veta i kommentarerna nedan.