O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Autenticar com o Firebase anonimamente usando C++

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Você pode usar o Firebase Authentication para criar e usar contas anônimas temporárias para autenticar com o Firebase. Essas contas anônimas temporárias podem ser usadas para permitir que usuários que ainda não se inscreveram no seu aplicativo trabalhem com dados protegidos por regras de segurança. Se um usuário anônimo decidir se inscrever em seu aplicativo, você poderá vincular suas credenciais de entrada à conta anônima para que ele possa continuar a trabalhar com seus dados protegidos em sessões futuras.

Antes de você começar

  1. Adicione o Firebase ao seu projeto C++ .
  2. Se você ainda não conectou seu aplicativo ao projeto do Firebase, faça isso no Firebase console .
  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 , habilite o método de login anônimo .
    3. Opcional : se você atualizou seu projeto para o Firebase Authentication com Identity Platform , pode ativar a limpeza automática. Quando você habilita essa configuração, contas anônimas com mais de 30 dias serão excluídas automaticamente. Em projetos com limpeza automática habilitada, a autenticação anônima não contará mais para limites de uso ou cotas de cobrança. Consulte Limpeza automática .

Autenticar com o Firebase anonimamente

Quando um usuário desconectado usa um recurso de aplicativo que exige autenticação com o Firebase, faça login do usuário anonimamente seguindo as etapas a seguir:

A classe Auth é o gateway para todas as chamadas de API.
  1. Adicione os arquivos de cabeçalho Auth e App:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Em seu código de inicialização, crie uma classe firebase::App .
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. Adquira a classe firebase::auth::Auth para seu firebase::App . Há um mapeamento um para um entre App e Auth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Chamar Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • Se o seu programa tiver um loop de atualização que é executado regularmente (digamos, 30 ou 60 vezes por segundo), você pode verificar os resultados uma vez por atualização com Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    Ou, se o seu programa for orientado a eventos, você pode preferir para registrar um retorno de chamada no Future .
  • Converter uma conta anônima em uma conta permanente

    Quando um usuário anônimo se inscreve no seu aplicativo, você pode permitir que ele continue trabalhando com a nova conta. Por exemplo, você pode disponibilizar os itens que o usuário adicionou ao carrinho de compras antes de se inscrever no novo carrinho de compras da conta. Para isso, conclua as seguintes etapas:

    1. Quando o usuário se inscrever, conclua o fluxo de entrada para o provedor de autenticação do usuário até, mas não incluindo, chamar um dos métodos Auth::SignInWith . Por exemplo, obtenha o token de ID do Google do usuário, o token de acesso do Facebook ou o endereço de e-mail e a senha.
    2. Obtenha uma auth::Credential para o novo provedor de autenticação:

      Login do Google
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Login do Facebook
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      placeholder7 Login de senha de e-mail
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. Passe o objeto auth::Credential para o método LinkWithCredential do usuário de login:

      // Link the new credential to the currently active user.
      firebase::auth::User* current_user = auth->current_user();
      firebase::Future<firebase::auth::User*> result =
          current_user->LinkWithCredential(credential);
      

    Se a chamada para LinkWithCredential for bem-sucedida, a nova conta do usuário poderá acessar os dados do Firebase da conta anônima.

    Limpeza automática

    Se você atualizou seu projeto para o Firebase Authentication com Identity Platform , pode ativar a limpeza automática no Firebase console. Ao ativar esse recurso, você permite que o Firebase exclua automaticamente contas anônimas com mais de 30 dias. Em projetos com limpeza automática habilitada, a autenticação anônima não contará para limites de uso ou cotas de cobrança.

    • Quaisquer contas anônimas criadas após habilitar a limpeza automática podem ser excluídas automaticamente a qualquer momento após 30 dias após a criação.
    • As contas anônimas criadas antes de habilitar a limpeza automática estarão qualificadas para exclusão automática a partir de 30 dias após a habilitação da limpeza automática.
    • Se você desativar a limpeza automática, todas as contas anônimas programadas para serem excluídas permanecerão programadas para serem excluídas. Essas contas não contam para limites de uso ou cotas de faturamento.
    • Se você "atualizar" uma conta anônima vinculando-a a qualquer método de login, a conta não será excluída automaticamente.

    Se você quiser ver quantos usuários serão afetados antes de ativar esse recurso e tiver feito upgrade do seu projeto para o Firebase Authentication com Identity Platform , filtre por is_anon no Cloud Logging .

    Próximos passos

    Agora que os usuários podem se autenticar no Firebase, você pode controlar o acesso deles aos dados no banco de dados do Firebase usando as regras do Firebase .