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!
Creiamo un progetto Xcode di esempio che utilizza Firebase. Lo nomineremo MyFirstFirebaseApp.
Scegli un App Single View modello per il tuo progetto.
Ora che il progetto è stato creato, iniziamo a configurarlo per Firebase.
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
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à:
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
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.
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.
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.
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
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.
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.
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.
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.
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.
E questo è tutto! Ora, abbiamo finito con tutte le configurazioni e possiamo iniziare ad implementare la registrazione e il flusso di login.
Torniamo a Xcode e creiamo il RegistrationViewController.swift, RegistrationViewController.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)
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.
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.