O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Primeiros passos com o Firebase Authentication no iOS

Use o Firebase Authentication para permitir que os usuários façam login no seu app com um ou mais métodos de login, inclusive login com endereço de e-mail e senha, além de provedores de identidade federados como o Login do Google e do Facebook. Veja neste tutorial os primeiros passos com o Firebase Authentication e como adicionar no seu app um login com endereço de e-mail e senha.

Conectar seu app ao Firebase

  1. Instale o SDK do Firebase.
  2. No Console do Firebase, adicione seu app ao projeto do Firebase.

Adicionar o Firebase Authentication ao seu app

  1. Adicione a dependência do Firebase Authentication ao Podfile do seu projeto:

    pod 'Firebase/Auth'
    
  2. Execute pod install e abra o arquivo .xcworkspace criado.

Criar protótipos e fazer testes com o Pacote do emulador local do Firebase (opcional)

Antes de ver informações sobre como seu app autentica os usuários, confira o Pacote do emulador local do Firebase, um conjunto de ferramentas que podem ser usadas para criar protótipos e testar a funcionalidade do Authentication. Conseguir trabalhar localmente sem precisar implantar serviços existentes será uma ótima ideia se você estiver decidindo entre técnicas e provedores de autenticação, testando modelos de dados diferentes com dados públicos e particulares usando as regras de segurança do Firebase e do Authentication ou criando protótipos de designs de IU de login.

Um emulador do Authentication faz parte do Pacote do emulador local, que permite ao seu app interagir com o conteúdo e a configuração do banco de dados emulado. Além disso, ele também permite interagir com os recursos do projeto emulado (opcional), como funções, outros bancos de dados e regras de segurança.

O uso do emulador do Authentication envolve apenas alguns passos:

  1. Para se conectar ao emulador, adicione uma linha de código à configuração de teste do app.
  2. Execute firebase emulators:start na raiz do diretório do projeto local.
  3. Use a IU do Pacote do emulador local para fazer uma prototipagem interativa ou use a API REST do emulador do Authentication para fazer testes não interativos.

Veja um guia detalhado em Conecte seu aplicativo ao emulador de autenticação. Para mais informações, consulte Introdução ao conjunto de emuladores locais do Firebase.

Agora veremos como autenticar os usuários.

Inicializar o SDK do Firebase

No representante do seu app, primeiro importe o SDK do Firebase:

Swift

import Firebase

Objective-C

@import Firebase;

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

Swift

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

Objective-C

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

Detectar o estado de autenticação

Anexe um listener ao objeto FIRAuth para cada visualização do aplicativo que precisa de informações sobre o usuário conectado. Esse listener é chamado sempre que o estado de login do usuário muda.

Anexe o listener ao método viewWillAppear do controlador de visualizações:

Swift

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

Objective-C

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

E desanexe o listener no método viewWillDisappear do controlador de visualizações:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Inscrever novos usuários

Crie um formulário que permita que novos usuários se inscrevam no seu app usando endereço de e-mail e senha. Quando um usuário completar o formulário, valide o endereço de e-mail e a senha informados e envie-os para o método createUser:

Swift

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) {
  // ...
}];

Login de usuários existentes

Crie um formulário que permita que usuários existentes façam login com um endereço de e-mail e senha. Quando um usuário preencher o formulário, chame o método signIn:

Swift

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) {
  // ...
}];

Receber informações do usuário

Depois que um usuário fizer login com sucesso, você pode receber informações sobre ele. Por exemplo, no seu listener de estado de autenticação:

Swift

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óximas etapas

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