É possível usar o Firebase Authentication para permitir que seus usuários se autentiquem com o Firebase usando os endereços de e-mail e senhas deles e gerenciem as contas baseadas em senha do app.
Antes de começar
- Adicione o Firebase ao seu projeto em JavaScript.
- Caso você ainda não tenha conectado o app ao projeto do Firebase, faça isso no Console do Firebase.
- Ative o login com e-mail/senha:
- No Console do Firebase, abra a seção Authentication.
- Na guia Método de login, ative o login pelo método E-mail/senha e clique em Salvar.
Criar uma conta baseada em senha
Para criar uma nova conta de usuário com uma senha, execute as seguintes etapas na página de login do app:
- Quando um novo usuário se inscrever usando o formulário do seu app, conclua as etapas de validação da nova conta exigidas pelo app, como verificar se a senha da nova conta foi digitada corretamente e atende aos requisitos de complexidade.
- Crie uma conta enviando o endereço de e-mail e a senha do novo usuário para
createUserWithEmailAndPassword
.Versão 9 para a Web
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Versão 8 para a Web
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Também é nesse local que você poderá identificar e solucionar erros. Para uma lista de códigos de erro, veja a Documentação de referência sobre autenticação.
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 página de login do app, faça o seguinte:
- Quando um usuário fizer login no app, transmita o endereço de e-mail e a senha dele para
signInWithEmailAndPassword
:Versão 9 para a Web
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Versão 8 para a Web
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
Também é nesse local que você poderá identificar e solucionar erros. Para uma lista de códigos de erro, veja a Documentação de referência sobre autenticação.
Próximas etapas
Depois que um usuário faz login pela primeira vez, uma nova conta de usuário é 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 e pode ser usada para identificar um usuário em todos os apps do projeto, seja qual for o método de login utilizado.
-
Nos apps, a maneira recomendada de saber o status de autenticação do seu usuário é definindo um observador no objeto
Auth
. É possível, então, receber as informações básicas de perfil do usuário do objetoUser
. Consulte Gerenciar usuários. Nas Regras de segurança do Firebase Realtime Database e do Cloud Storage, é possível receber o ID exclusivo do usuário conectado da variável
auth
e usar esse ID para controlar quais dados um usuário 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
:
Versão 9 para a Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Versão 8 para a Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });