Autenticazione con Firebase utilizzando account basati su password su piattaforme Apple

Puoi utilizzare l'autenticazione Firebase per consentire ai tuoi utenti di autenticarsi con Firebase utilizzando i loro indirizzi e-mail e password e per gestire gli account basati su password della tua app.

Prima di iniziare

Usa Swift Package Manager per installare e gestire le dipendenze Firebase.

  1. In Xcode, con il progetto applicazione aperta, passare a File> Pacchetti Swift> Aggiungi dipendenza pacchetto.
  2. Quando richiesto, aggiungi il repository SDK delle piattaforme Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Scegli la libreria di autenticazione Firebase.
  5. Al termine, Xcode inizierà automaticamente a risolvere e scaricare le tue dipendenze in background.

Successivamente, esegui alcuni passaggi di configurazione:

  1. Se non hai ancora collegato l'app per il vostro progetto Firebase, farlo dalla console Firebase .
  2. Abilita l'accesso tramite e-mail/password:
    1. Nella console Firebase , aprire la sezione Auth.
    2. Sul segno nella scheda Metodo, abilitare l'accesso in modalità E-mail / password e fare clic su Salva.

Crea un account basato su password

Per creare un nuovo account utente con una password, completa i seguenti passaggi nell'attività di accesso dell'app:

  1. Importare il modulo Firebase nella vostra UIApplicationDelegate :

    veloce

    import Firebase

    Obiettivo-C

    @import Firebase;
  2. Configurare un FirebaseApp istanza condivisa, di solito in della tua app application:didFinishLaunchingWithOptions: Metodo:

    veloce

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Obiettivo-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Quando un nuovo utente si registra utilizzando il modulo di registrazione della tua app, completa tutti i nuovi passaggi di convalida dell'account richiesti dalla tua app, ad esempio verifica che la password del nuovo account sia stata digitata correttamente e soddisfi i tuoi requisiti di complessità.
  4. Creare un nuovo account passando l'indirizzo email e la password del nuovo utente a createUserWithEmail:email:password:completion: .

    veloce

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    Obiettivo-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Se il nuovo account è stato creato correttamente, l'utente ha effettuato l'accesso e puoi ottenere i dati dell'account dell'utente dall'oggetto risultato passato al metodo di callback.

Accedi come utente con un indirizzo e-mail e una password

I passaggi per l'accesso di un utente con una password sono simili ai passaggi per la creazione di un nuovo account. Nell'attività di accesso della tua app, procedi come segue:

  1. Importare il modulo Firebase nella vostra UIApplicationDelegate :

    veloce

    import Firebase

    Obiettivo-C

    @import Firebase;
  2. Configurare un FirebaseApp istanza condivisa, di solito in della tua app application:didFinishLaunchingWithOptions: Metodo:

    veloce

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Obiettivo-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Quando un utente accede per la vostra applicazione, passano indirizzo email e la password dell'utente per signInWithEmail:email:password:completion: .

    veloce

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    Obiettivo-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Se l'utente accede correttamente, puoi ottenere i dati dell'account dell'utente dall'oggetto risultato passato al metodo di callback.

Prossimi passi

Dopo che un utente accede per la prima volta, viene creato un nuovo account utente e collegato alle credenziali, ovvero nome utente e password, numero di telefono o informazioni sul provider di autenticazione, con cui l'utente ha effettuato l'accesso. Questo nuovo account viene archiviato come parte del tuo progetto Firebase e può essere utilizzato per identificare un utente in ogni app del progetto, indipendentemente da come l'utente accede.

  • Nelle vostre applicazioni, è possibile ottenere informazioni sul profilo di base dell'utente dal FIRUser oggetto. Vedere Gestione utenti .

  • Nel database Firebase in tempo reale e cloud storage Regole di sicurezza , è possibile ottenere la firma-in ID utente univoco dell'utente dal auth variabile e utilizzarlo per controllare quali dati un accesso utente può.

È possibile consentire agli utenti di accedere alla vostra applicazione utilizzando più provider di autenticazione da collegando Auth credenziali di provider per un account utente esistente.

Per firmare un utente, chiamare signOut: .

veloce

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

Obiettivo-C

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

Potresti anche voler aggiungere un codice di gestione degli errori per l'intera gamma di errori di autenticazione. Vedere Errori maniglia .