We bevinden ons in een tijdperk van snelle prototyping. We kunnen goede ideeën krijgen, maar soms worden ze niet geïmplementeerd als ze te veel werk verzetten. Vaak is de back-end de beperkende factor - veel ideeën worden nooit geïmplementeerd vanwege gebrek aan kennis of tijd voor server-side codering.
Als een mobiele ontwikkelaar, kan het gebruik van een back-end as a service (BaaS) -platform u helpen uw ideeën snel uit te voeren.
Firebase heeft alle belangrijke functies die u nodig hebt voor snelle prototyping en het snel testen van uw ideeën. Met Firebase kunt u het maken van functies zoals authentificatie, database en objectopslag korter maken. Firebase biedt ook andere mogelijkheden die nuttig kunnen zijn voor het valideren van prototypen, zoals analyses, A / B-testen en pushmeldingen.
Het beste van alles is dat Firebase gratis is voor kleine projecten!
Laten we een voorbeeld Xcode-project maken dat Firebase gebruikt. We zullen het een naam geven MyFirstFirebaseApp.
Kies een Single View-app sjabloon voor uw project.
Nu het project is gemaakt, laten we beginnen met het configureren voor Firebase.
CocoaPods is een afhankelijkheidsmanager voor Swift en Objective-C Cocoa-projecten. We moeten het in ons project initialiseren. Dit kan gedaan worden met de pod init
commando.
$ cd your-project directory $ pod init
We willen de Firebase / Core pod voor ons project. Dit omvat de vereiste bibliotheken die nodig zijn om Firebase in gebruik te nemen.
$ pod 'Firebase / Core'
Nu is dit hoe uw Podfile zal kijken:
Na het opnemen van de pod details, laten we ze installeren met de pod installeren
commando. Dan kunnen we het project in Xcode openen door de .xcworkspace het dossier.
$ pod install $ open uw-project.xcworkspace
Laten we nu instellen met een Firebase-account! Zoals we allemaal weten, is Firebase een Google-product, dus we kunnen een Firebase-consoleaccount maken met ons Gmail-account.
Houd er echter rekening mee: Firebase is niet volledig gratis. We kunnen beginnen met een gratis versie voor de eerste prototyping, maar als u van plan bent om met Firebase in productie te gaan, moet u rekening houden met de prijsstructuur.
Nu we met succes zijn ingelogd op ons Firebase-account, kunnen we een project maken. Klik op Voeg een project toe.
Nadat het project is gemaakt, kunnen de Firebase-database, gebruikersbeheer en Remote Config worden gedeeld met iOS, Android en internet.
Nadat het project is gemaakt, wordt u naar de Projectoverzicht scherm. Onder Begin, Klik op iOS om aan de slag te gaan met ons iOS-prototype.
Om onze app te registreren, moeten we een project-ID opgeven.
Klik nu Registreer app. U wordt gevraagd om een te downloaden .plist bestand dat moet worden toegevoegd aan uw Xcode-project.
Deze GoogleService-Info.plist bevat basisinformatie zoals de klant-id, API-sleutel, database-URL en opslagbunker. Kijk en zie zodra je het hebt gedownload. U moet het vervolgens aan uw project toevoegen door het naar de onderstaande map in Xcode te slepen.
Nu kunt u de Firebase-initialisatiecode aan uw app toevoegen! Open AppDelegate
, en importeer Firebase. Dan toevoegen FirebaseApp.configure ()
in didFinishLaunchingWithOptions
. Uw code ziet er als volgt uit:
import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate var window: UIWindow? func application (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool FirebaseApp.configure () return true
De configuratie is eindelijk voltooid en u bent klaar om te testen of Firebase correct is geïnstalleerd in uw app. Wanneer u klikt volgende op de Voeg Firebase toe aan uw iOS-app pagina in de Firebase-console, ziet u dit:
Laten we de app opschonen, bouwen en uitvoeren via Xcode - er mogen geen fouten zijn. U kunt ook enkele logboeken zien die gerelateerd zijn aan Firebase in uw console. Als alles goed werkt, laat de Firebase-console het weten.
Hoera! Nu hebben we Firebase voor onze app ingesteld.
Zoals eerder vermeld, kan Firebase worden gebruikt voor gebruikersbeheer, dus laten we onze app instellen voor verificatie en gebruikersbeheer. Laten we eerst naar het gedeelte Verificatie in het Firebase-dashboard gaan, zoals hieronder wordt weergegeven.
Klik op Inlogmethode instellen. Hier kunnen we een aantal mogelijkheden zien. U kunt er meerdere kiezen of als u liever niet inlogt, kunt u kiezen Anoniem.
Laten we eens kijken hoe we een telefoon kunnen gebruiken als inlogmethode.
Ga eerst naar Aanmeldmethode, Klik op Telefoon, en schakel het in. Je ziet een scherm als dit:
U moet ook het Firebase / Auth
pod in uw Podfile.
pod 'Firebase / Auth'
Nadat u de bovenstaande regel in uw Podfile hebt toegevoegd, gaat u naar de projectmap en voert u de pod installeren
commando.
Vervolgens moet u pushmeldingen inschakelen in uw Xcode-project.
Om deze instelling te vinden, selecteert u uw app in de targets paneel en klik op de mogelijkheden tab. Vanaf daar kunt u inschakelen Push-meldingen.
Laten we nu reCAPTCHA-verificatie configureren. reCAPTCHA wordt gebruikt in het geval dat het verzenden of ontvangen van een stille push-melding niet mogelijk is, bijvoorbeeld wanneer de gebruiker de achtergrondvernieuwing voor uw app heeft uitgeschakeld of wanneer u uw app test op een iOS-simulator. In dit geval gebruikt Firebase-verificatie reCAPTCHA-verificatie om de aanmeldingsprocedure voor telefoons te voltooien.
Klik op GoogleService-Info.plist in het linkerpaneel van Xcode om de plist te openen. Kopieer nu de waarde van REVERSED_CLIENT_ID naar Teksteditor of een ander Kladblok.
Ga vervolgens naar targets > uw app> info > URL-typen. Klik op de knop "+" en kopieer de REVERSED_CLIENT_ID waarde in URL-schema's, zoals hieronder getoond.
Laten we nu Firebase Cloud Messaging configureren met de APN's van onze app.
Open de Firebase-console en klik op de knop instellingen knop die u ziet Project instellingen en Gebruikers en machtigingen. Klik op Project instellingen en dan de Cloud Messaging tab. Op dit scherm vindt u de sectie iOS-app-configuratie.
Om Firebase Cloud Messaging in te schakelen, zullen we onze APN's en onze authenticatiesleutel voor APN's naar dit dialoogvenster uploaden.
U moet een APN-verificatiesleutel en een APN-certificaatsleutel maken.
En dat is het! Nu zijn we klaar met alle configuraties en kunnen we beginnen met het implementeren van de registratie- en inlogstroom.
Laten we teruggaan naar Xcode en het maken RegistrationViewController.swift, RegistrationViewController.storyboard, en RegistrationService.swift bestanden.
Voor het storyboard heb ik een UITextField en UIButton toegevoegd, zoals hieronder getoond. Deze moeten worden gekoppeld RegistrationViewController.swift.
Dit is hoe mijn RegistrationViewController.swift zal kijken:
import Stichting import UIKit class RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! override func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Any)
Aangezien onze focus ligt op Firebase, zullen we UITextFieldDelegates niet implementeren. In plaats daarvan houden we de tekst vast bij klikken op de knop om de dingen eenvoudig te houden.
Laten we nu de volgende code toevoegen RegistrationService.swift.
import FirebaseAuth class RegistrationService func getVerificationId (telefoonnummer: String, completionHandler: @escaping (String ?, Error?) -> Void) PhoneAuthProvider.provider (). verifyPhoneNumber (phoneNumber, uiDelegate: nil) (verificationID, error) in if let error = error completionHandler (nul, fout) if let id = verificationID completionHandler (id, nil)
In deze code, PhoneAuthProvider.provider (). VerifyPhoneNumber
neemt een telefoonnummer als invoer en stuurt ons de verificationID
. Dit activeert ook een eenmalig wachtwoord (OTP) bericht naar het telefoonnummer dat werd verstrekt in het tekstveld. De gebruiker ontvangt de OTP op zijn telefoon en voert deze terug in een waarschuwingsvenster in de app.
Opmerking: zorg er tijdens het invoeren van het telefoonnummer voor dat de landcode ook wordt ingevoerd.
Merk ook op dat we ons dat moeten herinneren importeer FirebaseAuth
aan de bovenkant van het bestand.
Laten we nu teruggaan naar RegistrationViewController.swift en bel getVerificationId
, zoals hieronder getoond. Hier druk ik de ID af naar de console om te controleren of verificationId
werd gegenereerd.
import Stichting import UIKit class RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! override func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Any) if let phoneNumber = phoneNumber.text RegistrationService (). getVerificationId (phoneNumber: phoneNumber) (id, error) in if error ! = nihil return indien id id = id print (id)
Laten we nu een inlogmethode schrijven in RegistrationService. Hier maken we een Firebase-referenties object met verificatieId en OTP. Dit is hoe de code eruit zal zien:
func signIn (verificationId: String, verificationCode: String, completionHandler: @escaping (String ?, Error?) -> Void) let credential = PhoneAuthProvider.provider (). credential (withVerificationID: verificationId, verificationCode: verificationCode) Auth.auth ( ) .signIn (met: referentie) (gebruiker, fout) in als laat fout = fout completionHandler ("Fout", fout) completionHandler ("Succes", nul)
Zodra we de id hebben ontvangen, tonen we een waarschuwingsweergave voor de gebruiker om de OTP vast te leggen en de. Te bellen aanmelden
methode in RegistrationService
. Hier is wat de RegistrationViewController
zal er na deze veranderingen uitzien:
import Stichting import UIKit class RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! override func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Any) if let phoneNumber = phoneNumber.text RegistrationService (). getVerificationId (phoneNumber: phoneNumber) (id, error) in if error ! = nil return if let id = id self.displayAlert (id: id) func displayAlert (id: String) let alertController = UIAlertController (title: "OTP?", bericht: "", preferredStyle : .alert) laat cancelAction = UIAlertAction (titel: "Annuleren", stijl: .default, handler: (actie: UIAlertAction!) -> Void in) laat saveAction = UIAlertAction (titel: "Opslaan", style: .default , handler: alert -> Void in let otpText = alertController.textFields! [0] als UITextField if let otp = otpText.text print (otp) RegistrationService (). signIn (verificationId: id, verificationCode: 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, geanimeerd: true, completion: nil)
Nu kunt u uw app gebruiken om het uit te proberen, dit is wat u ziet wanneer u klikt Verzoek OTP.
Nu wordt de inlogstatus als afgedrukt Succes. We kunnen in Firebase Console controleren of een gebruiker is gemaakt.
In deze zelfstudie hebben we een eenvoudige app gebouwd met Xcode en Firebase. Hopelijk heb je een aantal nieuwe vaardigheden opgedaan die je in de praktijk kunt brengen in je aankomende projecten.
Als je vragen hebt, laat het me weten in de reacties hieronder.