Ir para o console

Autenticar com o Firebase usando contas baseadas em senhas no iOS

Use o Firebase Authentication para permitir que os usuários se autentiquem no Firebase usando os respectivos e-mails e senhas e para permitir o gerenciamento das contas do aplicativo baseadas em senha.

Antes de começar

  1. Adicione o Firebase ao projeto do iOS. Inclua os pods a seguir no Podfile:
    pod 'Firebase/Auth'
  2. Caso você ainda não tenha conectado o app ao projeto do Firebase, faça isso no Firebase console.
  3. Ative o login com e-mail/senha:
    1. No Console do Firebase, abra a seção Auth.
    2. Na guia Método de login, ative o login pelo método E-mail/senha e clique em Salvar.

Criar uma conta com base em senha

Para criar uma nova conta de usuário com uma senha, conclua estas etapas na atividade de inscrição do seu aplicativo:

  1. Importe o módulo do Firebase no UIApplicationDelegate:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. Configure uma instância compartilhada do FirebaseApp, que normalmente está no método application:didFinishLaunchingWithOptions: do aplicativo:

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Quando um novo usuário se inscrever usando o formulário do seu app, conclua as etapas de validação de nova conta exigidas pelo app, como verificar se a senha da nova conta foi digitada corretamente e atende aos requisitos de complexidade.
  4. Crie uma nova conta enviando o endereço de e-mail e a senha do novo usuário para createUserWithEmail:email:password:completion::

    Swift

    Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
      // ...
      guard let user = authResult?.user else { return }
    }

    Objective-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Se a nova conta for criada corretamente, o usuário será conectado, e você receberá os dados da respectiva conta por meio do objeto enviado para o método de retorno de chamada.

Conectar um usuário com endereço de e-mail e senha

As etapas para um usuário fazer login com uma senha são semelhantes às de criação de uma nova conta. Na atividade de login do app, faça o seguinte:

  1. Importe o módulo do Firebase no UIApplicationDelegate:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. Configure uma instância compartilhada do FirebaseApp, que normalmente está no método application:didFinishLaunchingWithOptions: do aplicativo:

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Quando um usuário fizer login no app, envie o endereço de e-mail e a senha dele para signInWithEmail:email:password:completion:.

    Swift

    Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
      // ...
    }

    Objective-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Se o usuário fizer login corretamente, você poderá receber os dados da respectiva conta pelo objeto enviado para o método de retorno de chamada.

Próximas etapas

Depois que um usuário faz login pela primeira vez, uma nova conta é criada e vinculada às credenciais, que podem ser o número do telefone, o nome de usuário e a senha ou as informações do provedor de autenticação. Essa nova conta é armazenada como parte do projeto do Firebase. Ela pode ser usada para identificar um usuário em todos os apps do projeto, independentemente do método de login usado.

  • Nos apps, é possível acessar informações básicas de perfil do usuário a partir do objeto FIRUser. Consulte Gerenciar usuários.

  • Nas Regras de segurança do Firebase Realtime Database e do Cloud Storage, é possível usar a variável auth para encontrar o código exclusivo do usuário conectado. Use essa informação para controlar quais dados ele pode acessar.

Os usuários podem fazer login no app usando vários provedores de autenticação. Basta vincular as credenciais desses provedores a uma conta de usuário.

Para desconectar um usuário, chame signOut:.

Swift

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

Objective-C

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

Adicione também o código de gerenciamento dos possíveis erros de autenticação. Consulte Solucionar erros.