Introducere în Firebase

Suntem într-o epocă de prototipuri rapide. Putem obține idei strălucitoare, dar uneori nu se pun în aplicare dacă aceștia iau prea multă muncă. Adesea, back-end-ul este factorul limitator - multe idei nu se implementează niciodată din cauza lipsei de cunoștințe sau a timpului pentru codarea de pe server.

Ca dezvoltator mobil, folosind o platformă de back-end ca serviciu (BaaS) vă pot ajuta să implementați rapid ideile.

Firebase are toate caracteristicile cheie de care aveți nevoie pentru prototiparea rapidă și testarea rapidă a ideilor dvs. Folosind Firebase, aveți posibilitatea să creați scurtcircuite funcții cum ar fi autentificarea, baza de date și stocarea obiectelor. Firebase vine de asemenea cu alte capabilități care pot fi utile pentru validarea prototipurilor, cum ar fi analizele, testarea A / B și notificările push. 

Cel mai bine, Firebase este gratuit pentru proiecte mici!

Configurați un App pentru iOS pentru a utiliza Firebase

Să creați un exemplu de proiect Xcode care utilizează Firebase. O vom numi MyFirstFirebaseApp.

Creați un nou proiect Xcode

Alege un Vizualizare aplicație unică șablon pentru proiectul dvs..

Acum, când proiectul este creat, să începem să îl configurăm pentru Firebase.

Creați un Podfile

CocoaPods este un manager de dependență pentru proiectele Swift și Obiectiv-C de cacao. Trebuie să o inițializăm în proiectul nostru. Acest lucru se poate face cu pod init comanda.

$ cd directorul dvs. de proiect $ pod init

Adăugați modulele Firebase Pods 

Vrem să adăugăm Firebase / Core pod pentru proiectul nostru. Acestea includ bibliotecile prealabile necesare pentru ca Firebase să funcționeze. 

$ pod 'Firebase / Core'

Acum, așa ești tu Podfile va arata:

Instalați modulele și deschideți proiectul în Xcode

După includerea detaliilor pentru pod, să le instalați cu pod instalare comanda. Apoi putem deschide proiectul în Xcode deschizând .xcworkspace fişier.

$ pod install $ deschideți-project.xcworkspace

Creați și configurați contul Firebase

Creați un cont Firebase

Acum hai să ne confruntăm cu un cont Firebase! După cum știm cu toții, Firebase este un produs Google, astfel încât să putem crea un cont Consola Firebase folosind contul Gmail. 

Cu toate acestea, ia notă: Firebase nu este complet gratuit. Putem incepe cu o versiune gratuita pentru prototipuri initiale, dar daca aveti planuri de a intra in productie cu Firebase atunci ar trebui sa fiti constienti de structura de stabilire a preturilor. 

Creați un nou proiect în Consola Firebase

Acum, că ne-am conectat cu succes la contul Firebase, să creăm un proiect. Click pe Adăugați un proiect.

Odată ce proiectul este creat, baza de date Firebase, gestionarea utilizatorilor și configurarea de la distanță pot fi partajate cu iOS, Android și web.

Odată ce proiectul este creat, veți fi dusi la rezumatul proiectului ecran. Sub Incepe, Click pe iOS pentru a începe cu prototipul iOS.


Înregistrați aplicația pentru iOS

Pentru a înregistra aplicația noastră, trebuie să furnizăm un identificator de proiect.

Acum faceți clic pe Înregistrați aplicația. Vi se va solicita să descărcați a .plist fișier care va trebui adăugat la proiectul dvs. Xcode.

Acest GoogleService-Info.plist va conține informații de bază precum id-ul clientului, cheia API, adresa URL a bazei de date și galeria de stocare. Aruncați o privire și vedeți o dată ce o descărcați. Apoi, trebuie să o adăugați la proiectul dvs. trăgându-l în folderul prezentat mai jos în Xcode.

Adăugați codul de inițializare în aplicația dvs.

Acum puteți adăuga codul de inițializare Firebase la aplicația dvs.! Deschis AppDelegate, și import Firebase. Apoi adauga FirebaseApp.configure () în didFinishLaunchingWithOptions. Codul dvs. va arăta astfel:

import UIKit import Firebase @ UIApplicationMain clasă AppDelegate: UIResponder, UIApplicationDelegate var fereastră: UIWindow? func cerere (_ cerere: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool FirebaseApp.configure () return true

Verificați faptul că Firebase funcționează în aplicația dvs.

Configurarea este finalizată în cele din urmă și sunteți gata să testați că Firebase este instalat corect în aplicația dvs. Când faceți clic pe Următor → pe Adăugați Firebase în aplicația dvs. iOS pagina din Consola Firebase, veți vedea aceasta:  

Să curățăm, să construim și să executăm aplicația prin Xcode - nu ar trebui să existe erori. De asemenea, puteți vedea unele jurnale legate de Firebase în consola dumneavoastră. Dacă totul funcționează corect, Consola Firebase vă va anunța.

Ura! Acum am creat Firebase pentru aplicația noastră. 

Administrarea utilizatorilor Firebase

După cum am menționat mai devreme, Firebase poate fi folosit pentru gestionarea utilizatorilor, așadar să configuram aplicația noastră pentru autentificarea și gestionarea utilizatorilor. În primul rând, să navigăm la secțiunea de autentificare din tabloul de bord Firebase, după cum se arată mai jos.

Click pe Configurați metoda de conectare. Aici vedem o serie de posibilități. Puteți alege mai multe sau dacă preferați să nu aveți nicio conectare, puteți alege Anonim

  • E-mail / parolă: Permite utilizatorilor să se înregistreze utilizând adresa de e-mail și parola lor. Firewall-ul SDK-uri oferă, de asemenea, verificarea adresei de e-mail, recuperarea parolei și primitivele de modificare a adresei de e-mail.
  • Telefon: Permiteți utilizatorilor să se conecteze cu un număr de telefon mobil utilizând instrumentele Firebase SDK și instrumentele de autentificare a utilizatorilor. În planul gratuit Spark al companiei Firebase obțineți 10.000 de conturi de telefon pe lună, dar după aceea va trebui să plătiți. Aruncați o privire la secțiunea de prețuri înainte de a opta pentru acest lucru. 
  • Google: Conectarea Google este configurată automat pe aplicațiile iOS și pe cele web conectate. Pentru a configura conectarea Google pentru aplicațiile Android, trebuie să adăugați o amprentă SHA1 pentru fiecare aplicație din Setările proiectului.
  • Joaca jocuri: Configurați clientul și secretul clientului.
  • Facebook: Pentru a utiliza Facebook pentru autentificare, va trebui să adăugați un URI de redirecționare OAuth la configurația aplicației dvs. Facebook.
  • Stare de nervozitate: Pentru a utiliza Twitter pentru autentificare, veți adăuga o adresă URL de apel invers la configurația aplicației Twitter.
  • GitHub: Pentru a configura autentificarea cu GitHub, veți adăuga o adresă URL de returnare a apelurilor de autorizare în configurația aplicației GitHub.
  • Anonim: Selectați această opțiune pentru a activa conturile de oaspeți anonime din aplicația dvs., ceea ce vă permite să impuneți reguli de securitate specifice pentru utilizatori și Firebase fără a solicita acreditări de la utilizatori.

Configurați autentificarea telefonului

Să vedem cum putem folosi un telefon ca metodă de conectare.

În primul rând, navigați la Metodă de conectare, Click pe Telefon, și să o activați. Veți vedea un ecran ca acesta:

Va trebui să includeți și Firebase / Auth pod în dvs. Podfile.

 pod "Firebase / Auth"

După adăugarea liniei de mai sus în fișierul Podfile, navigați la dosarul proiectului și rulați pod instalare comanda.

Apoi, trebuie să activați notificările push în proiectul dvs. Xcode.

Pentru a găsi această setare, selectați aplicația din Obiective panou și faceți clic pe Capacități tab. De acolo, puteți să activați Notificări.

reCAPTCHA Verificare 

Acum, să configurați verificarea reCAPTCHA. reCAPTCHA este utilizat în cazul în care nu este posibilă trimiterea sau primirea unei notificări silențioase, cum ar fi atunci când utilizatorul a dezactivat actualizarea de fundal pentru aplicația dvs. sau când testați aplicația pe un simulator iOS. În acest caz, Firebase Authentication utilizează verificarea reCAPTCHA pentru a finaliza fluxul de conectare al telefonului.

Click pe GoogleService-Info.plist în panoul din stânga al lui Xcode pentru a deschide plistul. Acum copiați valoarea REVERSED_CLIENT_ID în TextEdit sau în alt notepad. 

Apoi, du-te la Obiective > aplicația dvs.> Info > Tipuri de adrese URL. Faceți clic pe butonul "+" și copiați REVERSED_CLIENT_ID valoare în Scheme de adrese URL, așa cum se arată mai jos.

Configurați Mesaje Cloud Firebase

Acum, să configurați Mesaje Cloud Firebase cu APN-urile aplicației noastre.

Deschideți Consola Firebase și odată ce faceți clic pe Setări butonul pe care îl veți vedea Setările proiectului și Utilizatori și Permisiuni. Click pe Setările proiectului și apoi Cloud Messaging tab. Pe acest ecran puteți găsi secțiunea de configurare a aplicației iOS. 

Pentru a activa Firebase Cloud Messaging, vom încărca APN-urile noastre și cheia de autentificare APN în această fereastră de dialog.

Va trebui să creați o cheie de autentificare APN și o cheie de certificat APN.

Pași pentru a crea o cheie de autentificare APN 

  • În contul dvs. de dezvoltator, accesați Certificate, identificatori și profiluri, și sub Chei, Selectați Toate
  • Dați clic pe butonul de adăugare (+) în colțul din dreapta sus. 
  • Introduceți o descriere pentru cheia de autentificare APN.
  • Sub Servicii cheie, selectează APN-uri și faceți clic pe Continua.
  • Clic A confirma și apoi Descarca. Salvați cheia într-un loc sigur! Aceasta este o descărcare o singură dată, iar cheia nu poate fi preluată mai târziu.

Pași pentru a crea o cheie certificată APN

  • Creaza un ID-ul aplicației din contul dvs. de dezvoltator Apple și activați Împingeți notificarea în timp ce creați. Un ID de aplicație este un identificator care identifică în mod unic o aplicație. Ca o convenție, este reprezentată de un domeniu inversat cu numele companiei dvs. și numele aplicației (de ex. com.mysoft.myfirstfirebaseApp).
  • Creeaza o Profilul profilului pentru ID-ul de aplicație de mai sus. 

Si asta e! Acum, am terminat cu toate configurațiile și putem începe implementarea înregistrării și a fluxului de conectare.

Înregistrarea unui utilizator cu autentificare telefonică

Să ne întoarcem la Xcode și să creăm RegistrationViewController.swiftRegistrationViewController.storyboard, și RegistrationService.swift fișiere.

Pentru tabloul de bord, am adăugat un UITextField și UIButton după cum se arată mai jos. Acestea ar trebui să fie legate în RegistrationViewController.swift.

Acesta este modul meu RegistrationViewController.swift va arata: 

Importul fundației de import UIKit clasa RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet slab var numărulNumber: UITextField! suprascrie func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ expeditor: Oricare) 

Deoarece focalizarea principală se află pe Firebase, nu vom implementa UITextFieldDelegates. În schimb, pentru a păstra lucrurile simple, vom capta textul după apăsarea butonului. 

Acum, să adăugăm următorul cod în RegistrationService.swift.

importNumber (numeNumber, uiDelegate: nil) (ID de verificare, eroare) în if eroare = eroare completeHandler (zero, eroare) dacă permiteți id = verificationID completeHandler (id, nil) 

În acest cod, PhoneAuthProvider.provider (). VerifyPhoneNumber ia un număr de telefon ca intrare și ne trimite înapoi verificationID. De asemenea, acest lucru declanșează un mesaj de parolă unică (OTP) la numărul de telefon care a fost furnizat în câmpul de text. Utilizatorul va primi OTP-ul pe telefonul său și îl va introduce într-un dialog de alertă în aplicație.

Notă: în timp ce introduceți numărul de telefon, asigurați-vă că ați introdus și codul țării.

De asemenea, rețineți că trebuie să ne amintim importă FirebaseAuth în partea de sus a fișierului.

Acum, să ne întoarcem RegistrationViewController.swift și sunați getVerificationId, așa cum se arată mai jos. Aici, tip pe id la consola pentru a verifica dacă verificationId a fost generat.

Importul fundației de import UIKit clasa RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet slab var numărulNumber: UITextField! override funcția viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ expeditor: Oricare) if letNumber = phoneNumber.text RegistrationService () getVerificationId (idName, phoneNumber) ! = nil return dacă lăsați id = id print (id)

Metoda de conectare

Acum, să scriem o metodă de conectare în RegistrationService. Aici vom crea un obiect Firebase Credential folosind verificarea și OTP. Acesta este modul în care codul va arăta:

 funcția signInIn (verificationId: String, verificationCode: String, completionHandler: @escaping (String ?, Error?) -> Void) let credential = PhoneAuthProvider.provider ) .signIn (cu: credential) (utilizator, eroare) în dacă permite eroare = eroare completeHandler ("Eroare", eroare) completionHandler ("Success"

Odată ce primim codul de identitate, vom afișa o vizualizare de alertă pentru ca utilizatorul să capteze OTP și să apeleze conectare metoda în RegistrationService. Iată ce este RegistrationViewController va arata dupa aceste schimbari: 

Importul fundației de import UIKit clasa RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet slab var numărulNumber: UITextField! override funcția viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ expeditor: Oricare) if letNumber = phoneNumber.text RegistrationService () getVerificationId (idName, phoneNumber) ! = nil return dacă permiteți id = id id.displayAlert (id: id) func displayAlert (id: String) letarController = UIAlertController : .laint) cancelAction = UIAlertAction (titlu: "Cancel", stil: .default, handler: (action: UIAlertAction!) -> Void in) saveAction = UIAlertAction , manipulator: alert -> Void în permite otpText = alertController.textFields! [0] ca UITextField dacă permiteți otp = otpText.text print (otp) RegistrationService () , eroare) în cazul în care eroare! = nil return print ("Stare SignIn", status ?? "Necunoscut")) alertController.addTextField textField: UITextField! "  alertController.addAction (cancelAction) alertController.addAction (saveAction) auto.present (alertController, animat: true, completare: nil)

Acum puteți să rulați aplicația dvs. pentru ao încerca - iată ce veți vedea când faceți clic Cereți OTP.

Acum, starea de conectare va fi imprimată ca Succes. Putem verifica în Consola Firebase că un utilizator a fost creat. 

Concluzie

În acest tutorial am construit o aplicație simplă folosind Xcode și Firebase. Sperăm că ați câștigat noi abilități pe care le veți putea pune în practică în proiectele viitoare. 

Dacă aveți întrebări, anunțați-ne în comentariile de mai jos.

Cod