Introduzione a Firebase

Siamo in un'era di prototipazione rapida. Potremmo avere idee brillanti, ma a volte non vengono implementate se richiedono troppo lavoro. Spesso il back-end è il fattore limitante: molte idee non vengono mai implementate a causa della mancanza di conoscenza o del tempo per la codifica lato server.

Come sviluppatore mobile, l'utilizzo di una piattaforma back-end as a service (BaaS) può aiutarti a implementare rapidamente le tue idee.

Firebase ha tutte le caratteristiche chiave di cui hai bisogno per la prototipazione rapida e testare rapidamente le tue idee. Utilizzando Firebase, è possibile creare una scorciatoia per la creazione di funzionalità come l'autenticazione, il database e l'archiviazione degli oggetti. Firebase viene fornito con altre funzionalità che possono essere utili per la convalida di prototipi, come analisi, test A / B e notifiche push. 

Meglio di tutto, Firebase è gratuito per piccoli progetti!

Configura un'app per iOS per l'uso di Firebase

Creiamo un progetto Xcode di esempio che utilizza Firebase. Lo nomineremo MyFirstFirebaseApp.

Crea un nuovo progetto Xcode

Scegli un App Single View modello per il tuo progetto.

Ora che il progetto è stato creato, iniziamo a configurarlo per Firebase.

Crea un Podfile

CocoaPods è un manager delle dipendenze per i progetti di cacao Swift e Objective-C. Dobbiamo inizializzarlo nel nostro progetto. Questo può essere fatto con il pod init comando.

$ cd directory del tuo progetto $ pod init

Aggiungi i pod Firebase 

Vogliamo aggiungere il Firebase / core pod al nostro progetto. Ciò include le librerie dei prerequisiti necessari per far funzionare Firebase. 

$ pod 'Firebase / Core'

Ora questo è il tuo Podfile guarderà:

Installa i pod e apri il progetto in Xcode

Dopo aver incluso i dettagli del pod, installiamoli con installazione pod comando. Quindi possiamo aprire il progetto in Xcode aprendo il .xcworkspace file.

$ pod installa $ open your-project.xcworkspace

Crea e configura il tuo account Firebase

Crea un account Firebase

Ora iniziamo a configurarci con un account Firebase! Come tutti sappiamo, Firebase è un prodotto Google, quindi possiamo creare un account Console Firebase utilizzando il nostro account Gmail. 

Tuttavia, prendi nota: Firebase non è completamente gratuito. Possiamo iniziare con una versione gratuita per la prototipazione iniziale, ma se hai intenzione di entrare in produzione con Firebase, devi essere a conoscenza della struttura dei prezzi. 

Crea un nuovo progetto nella console di Firebase

Ora che abbiamo eseguito l'accesso con successo al nostro account Firebase, creiamo un progetto. Clicca su Aggiungi progetto.

Una volta creato il progetto, il database Firebase, la gestione utenti e la configurazione remota possono essere condivisi con iOS, Android e il Web.

Una volta creato il progetto, verrai indirizzato al Panoramica del progetto schermo. Sotto Iniziare, clicca su iOS per iniziare sul nostro prototipo iOS.


Registra l'app per iOS

Per registrare la nostra app, è necessario fornire un identificatore di progetto.

Ora fai clic Registrati app. Ti verrà chiesto di scaricare un .plist file che dovrà essere aggiunto al tuo progetto Xcode.

Questo GoogleService-Info.plist conterrà informazioni di base come l'id del client, la chiave API, l'URL del database e il bucket di archiviazione. Dai un'occhiata e guarda quando lo scarichi. Devi quindi aggiungerlo al tuo progetto trascinandolo nella cartella mostrata sotto in Xcode.

Aggiungi il codice di inizializzazione alla tua app

Ora puoi aggiungere il codice di inizializzazione di Firebase alla tua app! Aperto AppDelegate, e importare Firebase. Quindi aggiungi FirebaseApp.configure () nel didFinishLaunchingWithOptions. Il tuo codice sarà simile a questo:

import UIKit import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate var window: UIWindow? func application (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool FirebaseApp.configure () restituisce true

Verifica che Firebase funzioni nella tua app

L'installazione è finalmente completata e sei pronto per testare che Firebase sia installato correttamente nella tua app. Quando si fa clic Il prossimo sul Aggiungi Firebase alla tua app iOS pagina nella Console di Firebase, vedrai questo:  

Puliamo, costruiamo ed eseguiamo l'app tramite Xcode: non dovrebbero esserci errori. Inoltre puoi vedere alcuni log relativi a Firebase nella tua console. Se tutto funziona correttamente, la Console Firebase ti avviserà.

Evviva! Ora abbiamo installato con successo Firebase per la nostra app. 

Firebase User Management

Come accennato in precedenza, Firebase può essere utilizzato per la gestione degli utenti, quindi configuriamo la nostra app per l'autenticazione e la gestione degli utenti. Innanzitutto, passiamo alla sezione Autenticazione nella Dashboard Firebase, come mostrato di seguito.

Clicca su Imposta il metodo di accesso. Qui possiamo vedere un numero di possibilità. Puoi sceglierne più di uno, o se preferisci non avere alcun accesso, puoi scegliere Anonimo

  • E-mail / password: Consente agli utenti di registrarsi utilizzando il proprio indirizzo email e la propria password. Gli SDK di Firebase forniscono anche la verifica dell'indirizzo email, il ripristino della password e le primitive di modifica dell'indirizzo email.
  • Telefono: Consente agli utenti di accedere con un numero di telefono cellulare utilizzando la verifica del telefono SDK Firebase e gli strumenti di autenticazione utente. Sotto il piano gratuito Spark di Firebase ottieni 10.000 accessi telefonici al mese, ma dopo dovrai pagare. Dai un'occhiata alla sezione dei prezzi prima di optare per questo. 
  • Google: L'accesso a Google viene configurato automaticamente sulle app iOS e Web connesse. Per configurare l'accesso di Google per le tue app Android, devi aggiungere un'impronta digitale SHA1 per ogni app nelle Impostazioni progetto.
  • Giocare: Configura l'ID client e il segreto del client.
  • Facebook: Per utilizzare l'autenticazione di Facebook, dovrai aggiungere un URI di reindirizzamento OAuth alla configurazione dell'app Facebook.
  • cinguettio: Per utilizzare Twitter per l'autenticazione, aggiungere un URL di richiamata alla configurazione dell'app Twitter.
  • GitHub: Per impostare l'autenticazione con GitHub, aggiungi un URL di richiamata di autorizzazione alla configurazione dell'app GitHub.
  • Anonimo: Seleziona questa opzione per abilitare gli account anonimi guest nella tua applicazione, che ti consente di applicare le regole di sicurezza e Firebase specifiche dell'utente senza richiedere credenziali dai tuoi utenti.

Configura Autenticazione telefono

Vediamo come possiamo usare un telefono come metodo di accesso.

Per prima cosa, vai a Metodo di accesso, clicca su Telefono, e abilitarlo. Vedrai una schermata come questa:

Avrai anche bisogno di includere il Firebase / Auth pod nel tuo Podfile.

 pod 'Firebase / Auth'

Dopo aver aggiunto la riga sopra nel tuo Podfile, vai alla cartella del progetto ed esegui il installazione pod comando.

Successivamente, è necessario abilitare le notifiche push nel progetto Xcode.

Per trovare questa impostazione, seleziona la tua app da obiettivi pannello e fare clic su funzionalità scheda. Da lì, puoi abilitare Le notifiche push.

Verifica di reCAPTCHA 

Ora configuriamo la verifica di reCAPTCHA. reCAPTCHA viene utilizzato nel caso in cui l'invio o la ricezione di una notifica push silenziosa non sia possibile, ad esempio quando l'utente ha disattivato l'aggiornamento in background per la tua app o durante il test della tua app su un simulatore iOS. In questo caso, l'autenticazione Firebase utilizza la verifica reCAPTCHA per completare il flusso di accesso del telefono.

Clicca su GoogleService-Info.plist nel pannello di sinistra di Xcode per aprire il plist. Ora copia il valore di REVERSED_CLIENT_ID in TextEdit o in un altro blocco note. 

Avanti, vai a obiettivi > la tua app> Informazioni > Tipi di URL. Fare clic sul pulsante "+" e copiare il REVERSED_CLIENT_ID valore in Schemi URL, come mostrato di seguito.

Configura Firebase Cloud Messaging

Ora configuriamo Firebase Cloud Messaging con gli APN della nostra app.

Apri la console di Firebase e, dopo aver fatto clic su impostazioni pulsante che vedrai Impostazioni del progetto e Utenti e permessi. Clicca su Impostazioni del progetto e poi il Cloud Messaging scheda. In questa schermata, puoi trovare la sezione di configurazione dell'app iOS. 

Per abilitare Firebase Cloud Messaging, caricaremo i nostri APN e la nostra chiave di autenticazione APN in questa finestra di dialogo.

Dovrai creare una chiave di autenticazione APN e una chiave di certificato APN.

Passaggi per creare una chiave di autenticazione APN 

  • Nel tuo account sviluppatore, vai a Certificati, identificatori e profili, e sotto chiavi, selezionare Tutti
  • Fai clic sul pulsante Aggiungi (+) nell'angolo in alto a destra. 
  • Immettere una descrizione per la chiave di autenticazione APN.
  • Sotto Servizi chiave, seleziona il APN casella di controllo e fare clic Continua.
  • Clic Confermare e poi Scaricare. Salva la tua chiave in un posto sicuro! Questo è un download una tantum e la chiave non può essere recuperata in seguito.

Passaggi per creare una chiave certificato APN

  • Creare un ID app dal tuo account sviluppatore Apple e attiva Notifica push durante la creazione. Un ID app è un identificatore che identifica in modo univoco un'app. Come convenzione, è rappresentato da un dominio invertito con il nome della tua società e il nome dell'app (ad es. com.mysoft.myfirstfirebaseApp).
  • Creare un Profilo di provisioning per l'ID app sopra. 

E questo è tutto! Ora, abbiamo finito con tutte le configurazioni e possiamo iniziare ad implementare la registrazione e il flusso di login.

Registrazione di un utente con l'autenticazione del telefono

Torniamo a Xcode e creiamo il RegistrationViewController.swiftRegistrationViewController.storyboard, e RegistrationService.swift File.

Per lo storyboard, ho aggiunto un UITextField e UIButton come mostrato di seguito. Questi dovrebbero essere collegati in RegistrationViewController.swift.

Questo è come il mio RegistrationViewController.swift guarderà: 

import Foundation import Uikit class RegistrationViewController: UIViewController, UITextFieldDelegate @IBOutlet weak var phoneNumber: UITextField! override func viewDidLoad () super.viewDidLoad () @IBAction func requestOTPTapped (_ sender: Any) 

Poiché il nostro obiettivo principale è su Firebase, non implementeremo UITextFieldDelegates. Invece, per mantenere le cose semplici, cattureremo il testo sul clic del pulsante. 

Ora aggiungiamo il seguente codice RegistrationService.swift.

importare FirebaseAuth class RegistrationService func getVerificationId (phoneNumber: String, completionHandler: @escaping (String ?, Error?) -> Void) PhoneAuthProvider.provider (). verifyPhoneNumber (phoneNumber, uiDelegate: nil) (verificationID, error) in if let error = error completionHandler (nil, error) se let id = verificationID completionHandler (id, nil) 

In questo codice, PhoneAuthProvider.provider (). VerifyPhoneNumber prende un numero di telefono come input e ci rimanda il verificationID. Ciò attiva anche un messaggio di password monouso (OTP) al numero di telefono che è stato fornito nel campo di testo. L'utente riceverà l'OTP sul proprio telefono e lo reinserirà in una finestra di avviso nell'app.

Nota: inserendo il numero di telefono, assicurarsi che sia inserito anche il prefisso internazionale.

Si noti inoltre che dobbiamo ricordarci di importare FirebaseAuth nella parte superiore del file.

Ora, torniamo a RegistrationViewController.swift e chiama getVerificationId, come mostrato di seguito. Qui, sto stampando l'id sulla console per verificare se verificationId è stato generato.

import Foundation 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 se let id = id print (id)

Il metodo di accesso

Ora scriviamo un metodo di accesso in RegistrationService. Qui creeremo un oggetto Credenziali Firebase utilizzando verificationId e OTP. Ecco come apparirà il codice:

 func signIn (verificationId: String, verificationCode: String, completionHandler: @escaping (String ?, Error?) -> Void) let credential = PhoneAuthProvider.provider (). credential (withVerificationID: verificationId, verificationCode: verificationCode) Auth.auth ( ) .signIn (con: credential) (utente, errore) in if let error = error completionHandler ("Errore", errore) completionHandler ("Success", nil)

Una volta ricevuto l'id, mostreremo una vista di avviso per l'utente per acquisire l'OTP e chiamare il registrati metodo in RegistrationService. Ecco cosa è RegistrationViewController sembrerà dopo questi cambiamenti: 

import Foundation 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 se id = id self.displayAlert (id: id) func displayAlert (id: String) let alertController = UIAlertController (titolo: "OTP?", messaggio: "", preferredStyle : .alert) let cancelAction = UIAlertAction (titolo: "Annulla", stile: .default, gestore: (azione: UIAlertAction!) -> Void in) let saveAction = UIAlertAction (titolo: "Salva", stile: .default , gestore: alert -> Void in let otpText = alertController.textFields! [0] come UITextField se let otp = otpText.text print (otp) RegistrationService (). signIn (verificationId: id, verificationCode: otp) (stato , errore) 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, animated: true, completion: nil)

Ora puoi eseguire la tua app per provarla, ecco cosa vedrai quando fai clic Richiedi OTP.

Ora lo stato di accesso verrà stampato come Successo. Possiamo controllare in Firebase Console che un utente è stato creato. 

Conclusione

In questo tutorial, abbiamo creato una semplice app utilizzando Xcode e Firebase. Speriamo che avrai acquisito alcune nuove competenze che potrai mettere in pratica nei tuoi prossimi progetti. 

Se avete domande, fatemi sapere nei commenti qui sotto.