Firebase Authentication, Email e Senha usando Swift, iOS SDK

Bruno Galvão
5 min readAug 29, 2020

Sobre o Firebase

O Firebase é uma plataforma comprada pela Google que está se tornando muito popular entre os desenvolvedores móveis. Ela oferece muitas funcionalidades para os desenvolvedores móveis implementarem em seus aplicativos, como relatórios de falhas, análises, bancos de dados, notificações push, chat, armazenamento em nuvem e muitos mais. Por exemplo, você pode construir um ótimo back-end para seu aplicativo sem nem mesmo gerenciar qualquer infraestrutura.

O Firebase foi criado para simplificar o processo de desenvolvimento de aplicativos móveis e ao mesmo tempo acelerá-lo.

Se você ainda não integrou seu Projeto com Firebase de uma olhadinha nesse tutorial primeiro!

Neste tutorial, abordarei os seguintes pontos:

  1. Configuração
  2. Sign Up (Cadastre-se)
  3. Login
  4. Verificar Email
  5. Reset Password / “Esqueci a senha”
  6. Alterar a Senha

#1 Configuração

Começaremos instalando as dependências necessárias por meio do CocoaPods. Basta adicionar o código abaixo em seu Podfile e executar a instalação do pod no Terminal.

Depois de instalar com sucesso as dependências de que precisamos, é hora de configurar um projeto Firebase. Visite o Firebase console e crie um novo projeto. Dentro do projeto, você verá uma barra lateral com muitas funcionalidades. Precisamos nos concentrar na guia Autenticação. 👇

Ao clicar na guia Autenticação, você poderá escolher um Método de login. Selecione o método de e-mail / senha e habilite-o usando a chave. Isso permitirá que seu aplicativo use esse tipo de autenticação.

Observe que estamos abordando apenas o método de e-mail / senha, para conhecer outros métodos de Login acesse esse perfil ou nosso canal no Youtube.

#2 Sign Up (Cadastre-se)

Para testar os outros métodos, temos que começar criando um usuário. Na parte superior do seu arquivo, import FirebaseAuth. Essa classe será necessária durante todo o tutorial.

A função createUser() está somente chamando o método createUser() do FirebaseAuth. Este método espera um email e senha válidos, caso contrário, retornará um erro. Os erros são muito descritivos e você saberá o que está errado imediatamente.

Se o retorno de chamada não conter um erro, você deve encontrar o usuário em Auth.auth().currentUser. O currentUser é uma instância do FIRUser.

Você pode verificar se o usuário foi criado com sucesso diretamente do console. Todos os usuários são armazenados na guia Autenticação. 👇

#3 Login

Agora que o método SignUp já está funcionando, é hora de aprender como fazer login no aplicativo.

Se você comparar os métodos de registro e login, verá como o Firebase facilitou para nós, desenvolvedores. A estrutura dos métodos é a mesma e a única diferença é a nomenclatura. A função login() também só está chamando o método signIn() do FirebaseAuth.

Sign Out

Presumo que seu aplicativo precise de um recurso de Logout. Para desconectar o currentUser, você deve chamar o método a seguir. O método signOut() destruirá o Auth.auth().currentUser.

#4 Verificar Email

O object do usuário funcionará bem sem verificar o endereço de e-mail. Você não precisa implementar essa parte, mas é sempre bom saber se o e-mail pertence ou não ao usuário.

Ao chamar esse método, o Firebase enviará um e-mail ao usuário com um link de verificação incluído. Ao clicar no link, o usuário verifica com sucesso seu endereço de e-mail. Você pode saber se o usuário verificou chamando Auth.auth().currentUser?.isEmailVerified.

Você pode alterar o estilo do Email de verificação enviado diretamente no Console. 👇

Atualizando os detalhes do usuário

Para receber as informações mais recentes do usuário, devemos recarregar o objeto currentUser. 👇

Por exemplo, se o usuário verificar o e-mail e você não atualizar o usuário, ainda verá o isEmailVerified como falso. Para atualizar o objeto currentUser, devemos chamar o método reload().

#5 Reset Password / “Esqueci a senha”

O processo de redefinição de senha é muito semelhante ao processo de verificação de e-mail.

Ao chamar o método sendPasswordReset() junto com o e-mail que o usuário inseriu, o Firebase envia ao usuário um link de redefinição de senha. O usuário é redirecionado para uma página para inserir a nova senha e é isso. O Firebase cuida de todo o fluxo para você.

#6 Alterar a Senha

Atualizar a senha do usuário é simples só chamar a função updatePassword. Observe que a senha deve conter pelo menos 6 caracteres.

Aqui estão os possíveis erros:

  1. AuthErrorCode.userDisabled: A conta do usuário foi desabilitada por um administrador.
  2. AuthErrorCode.weakPassword: A senha fornecida é inválida, ou seja, a senha deve ter pelo menos seis caracteres.
  3. AuthErrorCode.operationNotAllowed: O provedor de login fornecido está desativado para este projeto do Firebase. Ative-o no Firebase console, na guia do método de login da seção Autenticação.
  4. AuthErrorCode.requiresRecentLogin: Atualizar a senha de um usuário é uma operação sensível à segurança que requer um login recente do usuário. Este erro indica que o usuário não fez login recentemente. Para resolver, reautentique o usuário invocando reauthenticateWithCredential:completion: on FIRUser.
  5. AuthErrorCode.userTokenExpired: A credential do usuário não é mais válida, o usuário deve fazer login novamente.

Resumo

  1. O Firebase Authentication oferece muitas opções de inscrição e uma delas é o Email / senha.
  2. O Firebase SDK fornece funções para inscrição, login, logout, atualização de e-mail e senha, redefinição de senha.
  3. O e-mail de senha de redefinição padrão pode ser enviado ao usuário em diferentes idiomas chamando uma função setLanguageCode(locale: String).

Se esse Tutorial ajudou você por favor se inscreva em nosso canal e siga-nos no Instagram, compartilhe para que outras pessoas como você possam encontrá-lo. Obrigado pela sua atenção! 🚀

--

--