Você pode usar o Firebase Authentication para permitir que os usuários façam login no seu aplicativo usando um ou mais métodos de login, incluindo login com endereço de e-mail e senha, e provedores de identidade federados, como Login do Google e Login do Facebook. Este tutorial apresenta uma introdução ao Firebase Authentication, mostrando como adicionar endereço de e-mail e login com senha ao seu aplicativo.
Conecte seu aplicativo ao Firebase
- Instale o SDK do Firebase .
- No console do Firebase , adicione seu aplicativo ao projeto do Firebase.
Adicione o Firebase Authentication ao seu aplicativo
Use o Swift Package Manager para instalar e gerenciar dependências do Firebase.
- No Xcode, com o projeto do seu aplicativo aberto, navegue até File > Add Packages .
- Quando solicitado, adicione o repositório SDK das plataformas Apple do Firebase:
- Escolha a biblioteca Firebase Authentication.
- Adicione o sinalizador
-ObjC
à seção Outros sinalizadores de vinculador das configurações de compilação do seu destino. - Quando terminar, o Xcode começará automaticamente a resolver e baixar suas dependências em segundo plano.
https://github.com/firebase/firebase-ios-sdk.git
(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 criar protótipos e testar a funcionalidade de autenticação: Firebase Local Emulator Suite. Se você estiver decidindo entre técnicas e provedores de autenticação, experimentando diferentes modelos de dados com dados públicos e privados usando autenticação e regras de segurança do Firebase ou criando protótipos de designs de UI de login, poder trabalhar localmente sem implantar serviços ativos 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).
Usar o emulador de autenticação envolve apenas algumas etapas:
- Adicionando uma linha de código à configuração de teste do seu aplicativo para conectar-se ao emulador.
- Na raiz do diretório local do projeto, executando
firebase emulators:start
. - Usando a IU do Local Emulator Suite 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 explicando como autenticar usuários.
Inicialize o SDK do Firebase
No delegado do seu aplicativo, primeiro importe o SDK do Firebase:
Rápido
import FirebaseCore
Objetivo-C
@import FirebaseCore;
Em seguida, no application:didFinishLaunchingWithOptions:
inicialize o objeto FirebaseApp
:
Rápido
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objetivo-C
// Use Firebase library to configure APIs
[FIRApp configure];
Ouça o estado de autenticação
Para cada uma das visualizações do seu aplicativo que precisa de informações sobre o usuário conectado, anexe um ouvinte ao objeto FIRAuth
. Esse ouvinte é chamado sempre que o estado de login do usuário muda.
Anexe o ouvinte ao método viewWillAppear
do controlador de visualização:
Rápido
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Objetivo-C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
E desanexe o ouvinte no método viewWillDisappear
do controlador de visualização:
Rápido
Auth.auth().removeStateDidChangeListener(handle!)
Objetivo-C
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Cadastre novos usuários
Crie um formulário que permita que novos usuários se registrem em seu aplicativo usando seu 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, em seguida, passe-os para o método createUser
:
Rápido
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
Objetivo-C
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Faça login de usuários existentes
Crie um formulário que permita que usuários existentes façam login 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 }
// ...
}
Objetivo-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Obtenha informações do usuário
Depois que um usuário fizer login com êxito, você poderá obter informações sobre o usuário. Por exemplo, no 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 += " "
}
// ...
}
Objetivo-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: