Ir para o console

Autenticação anônima com o Firebase usando JavaScript

Use o Firebase Authentication para criar e usar contas anônimas temporárias e fazer a autenticação no Firebase. Com essas contas, os usuários que ainda não se inscreveram no seu app podem trabalhar com os dados protegidos pelas regras de segurança. Se um usuário anônimo se inscrever, vincule as credenciais de login à conta anônima para que ele continue trabalhando com os dados protegidos em sessões posteriores.

Antes de começar

  1. Adicione o Firebase ao seu projeto do JavaScript.
  2. Caso você ainda não tenha conectado o app ao seu projeto do Firebase, faça isso no Console do Firebase.
  3. Ative a autenticação anônima:
    1. No Console do Firebase, abra a seção Auth.
    2. Na página Métodos de login, ative o método de login Anônimo.

Fazer a autenticação anônima no Firebase

Quando um usuário não conectado usar um recurso do app que exija autenticação com o Firebase, conecte esse usuário anonimamente executando as seguintes etapas:

  1. Chame o método signInAnonymously.
    firebase.auth().signInAnonymously().catch(function(error) {
      // Handle Errors here.
      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, confira a Documentação de referência de autenticação.
  2. Se o método signInAnonymously for concluído sem erros, o observador registrado no onAuthStateChanged será acionado e você receberá os dados da conta do usuário anônimo a partir do objeto User:
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.
        var isAnonymous = user.isAnonymous;
        var uid = user.uid;
        // ...
      } else {
        // User is signed out.
        // ...
      }
      // ...
    });

Converter uma conta anônima em permanente

Quando um usuário anônimo se inscreve no seu app, ele pode continuar trabalhando com a nova conta. Por exemplo, você pode deixar no carrinho de compras dessa conta os itens adicionados antes da inscrição. Para isso, realize as seguintes etapas:

  1. Quando o usuário se inscrever, conclua o fluxo de login para o provedor de autenticação até a chamada de um dos métodos Auth.signInWith, mas sem incluir essa etapa. Por exemplo, receba o token de código do Google, o token de acesso do Facebook ou o endereço de e-mail e a senha do usuário.
  2. Crie uma AuthCredential para o novo provedor de autenticação:

    Login do Google
    var credential = firebase.auth.GoogleAuthProvider.credential(
        googleUser.getAuthResponse().id_token);
    
    Login do Facebook
    var credential = firebase.auth.FacebookAuthProvider.credential(
        response.authResponse.accessToken);
    
    Login com e-mail/senha
    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
    
  3. Transmita o objeto AuthCredential para o método link do usuário conectado:

    
    firebase.auth().currentUser.linkAndRetrieveDataWithCredential(credential).then(function(usercred) {
      var user = usercred.user;
      console.log("Anonymous account successfully upgraded", user);
    }, function(error) {
      console.log("Error upgrading anonymous account", error);
    });
    

Se a chamada para link tiver sucesso, a nova conta do usuário poderá acessar os dados do Firebase da conta anônima.

Próximas etapas

Agora que os usuários podem se autenticar com o Firebase, use as regras do Firebase para controlar os respectivos acessos ao banco de dados.