Acompanhe as novidades sobre tudo o que foi anunciado no Firebase Summit e saiba como o Firebase pode ajudar a acelerar o desenvolvimento de apps e executá-los com confiança. Saiba mais

Introdução ao Firebase Authentication em plataformas Apple

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Você pode usar o Firebase Authentication para permitir que os usuários façam login em seu aplicativo usando um ou mais métodos de login, incluindo endereço de e-mail e senha de login e provedores de identidade federados, como Google Sign-in e Facebook Login. Este tutorial apresenta o Firebase Authentication, mostrando como adicionar endereço de e-mail e login de senha ao seu aplicativo.

Conecte seu aplicativo ao Firebase

  1. Instale o SDK do Firebase .
  2. No console do Firebase , adicione seu aplicativo ao seu projeto do Firebase.

Adicione o Firebase Authentication ao seu aplicativo

Use o Swift Package Manager para instalar e gerenciar dependências do Firebase.

  1. No Xcode, com seu projeto de aplicativo aberto, navegue até File > Add Packages .
  2. Quando solicitado, adicione o repositório Firebase Apple Platform SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Escolha a biblioteca Firebase Authentication.
  5. Quando terminar, o Xcode começará automaticamente a resolver e baixar suas dependências em segundo plano.

(Opcional) Protótipo e teste com Firebase Local Emulator Suite

Antes de falar sobre como seu aplicativo autentica usuários, vamos apresentar um conjunto de ferramentas que você pode usar para prototipar e testar a funcionalidade de autenticação: Firebase Local Emulator Suite. Se você está decidindo entre técnicas e provedores de autenticação, experimentando diferentes modelos de dados com dados públicos e privados usando Autenticação e Firebase Security Rules, ou prototipando designs de interface de usuário de login, poder trabalhar localmente sem implantar serviços ao vivo pode ser uma ótima ideia .

Um emulador de autenticação faz parte do conjunto de emuladores locais, que permite que seu aplicativo interaja com o conteúdo e a configuração do banco de dados emulado, bem como, opcionalmente, com os recursos do projeto emulado (funções, outros bancos de dados e regras de segurança).

O uso do emulador de autenticação envolve apenas algumas etapas:

  1. Adicionando uma linha de código à configuração de teste do seu aplicativo para se conectar ao emulador.
  2. Na raiz do diretório local do projeto, execute firebase emulators:start .
  3. Usando a interface do usuário do conjunto de emuladores locais para prototipagem interativa ou a API REST do emulador de autenticação para testes não interativos.

Um guia detalhado está disponível em Conecte seu aplicativo ao emulador de autenticação . Para obter mais informações, consulte a introdução do Local Emulator Suite .

Agora vamos continuar com como autenticar usuários.

Inicializar o Firebase SDK

Em seu app delegado, primeiro importe o Firebase SDK:

Rápido

import FirebaseCore

Objective-C

@import FirebaseCore;

Em seguida, no método application:didFinishLaunchingWithOptions: inicialize o objeto FirebaseApp :

Rápido

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

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

Ouça o estado de autenticação

Para cada uma das exibições de seu aplicativo que precisam de informações sobre o usuário conectado, anexe um ouvinte ao objeto FIRAuth . Esse ouvinte é chamado sempre que o estado de entrada do usuário é alterado.

Anexe o ouvinte no método viewWillAppear do controlador de visualização:

Rápido

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

E desconecte o ouvinte no método viewWillDisappear do controlador de exibição:

Rápido

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Cadastrar novos usuários

Crie um formulário que permita que novos usuários se registrem em seu aplicativo usando o endereço de e-mail e uma senha. Quando um usuário preencher o formulário, valide o endereço de e-mail e a senha fornecidos pelo usuário e passe-os para o método createUser :

Rápido

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

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

Entrar usuários existentes

Crie um formulário que permita que os usuários existentes entrem usando seu endereço de e-mail e senha. Quando um usuário preencher o formulário, chame o método signIn :

Rápido

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

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

Obter informações do usuário

Depois que um usuário entra com sucesso, você pode obter informações sobre o usuário. Por exemplo, em seu ouvinte de estado de autenticação :

Rápido

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

Objective-C

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

Próximos passos

Saiba como adicionar suporte para outros provedores de identidade e contas de convidados anônimos: