Adicionar a verificação de número de telefone do Firebase ao seu app Android

1. Visão geral

A verificação de número de telefone do Firebase (PNV do Firebase ou FPNV) é um método mais rápido e seguro para verificar números de telefone. Ao contrário da verificação por SMS, que exige que os usuários finais recebam e insiram um código de uma mensagem de texto, a PNV do Firebase funciona recebendo o número de telefone atribuído ao chip no dispositivo diretamente da operadora conectada com um único toque. Isso reduz o atrito para o usuário final, melhora a confiabilidade por não depender da entrega de mensagens SMS e elimina vetores de abuso comumente explorados ao usar SMS.

Caixa de diálogo pop-up do PNV do Firebase

Neste codelab, você vai aprender a criar um agente de voz de IA "Localizador de restaurantes" que usa a verificação de número de telefone do Firebase para verificar o número do usuário final antes de confirmar uma reserva de mesa.

Pré-requisitos

  • Versão mais recente do Android Studio
  • Dispositivo ou emulador Android com o nível 26 da API ou mais recente.

O que você vai aprender

  • Configure um projeto do Firebase com o PNV do Firebase.
  • Use o PNV do Firebase no modo de teste para criar protótipos sem uma conta de faturamento ou um SIM real.
  • Integrar o SDK de PNV do Firebase a um app Android.
  • Verificar um número de telefone usando a API de chamada única.
  • (Opcional) Prepare o app para produção.

2. Configurar o projeto de amostra

Criar um projeto do Firebase

  1. Faça login no console do Firebase usando sua Conta do Google.
  2. Clique no botão para criar um projeto e insira um nome (por exemplo, Tera Bites).
  3. Clique em Continuar.
  4. Se solicitado, leia e aceite os Termos do Firebase e clique em Continuar.
  5. (Opcional) Ative a assistência de IA no console do Firebase (chamada de "Gemini no Firebase").
  6. Neste codelab, você não precisa do Google Analytics. Portanto, desative a opção do Google Analytics.
  7. Clique em Criar projeto, aguarde o provisionamento e clique em Continuar.

Fazer o download do código

Execute os comandos a seguir para clonar o código de amostra deste codelab:

git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android

Abra o diretório firebase-pnv-android no Android Studio.

Conectar seu projeto Android ao Firebase

  1. No centro da página de visão geral do projeto do Console do Firebase, clique no ícone do Android ou em Adicionar app para iniciar o fluxo de trabalho de criação de apps.
  2. No campo Nome do pacote do Android, insira o nome do pacote do app: com.google.firebase.example.fpnv.
  3. Clique em Registrar app.
  4. Siga as instruções para fazer o download do arquivo google-services.json e mova-o para o diretório app/ do código que você acabou de baixar.
  5. Clique em Próxima.

Ativar o Firebase AI Logic

Este codelab usa o Firebase AI Logic para alimentar o agente de voz de IA. Para ativar o Firebase AI Logic no seu projeto do Firebase:

  1. No console do Firebase, acesse Serviços de IA > Lógica de IA.
  2. Clique em Começar.
  3. Clique em Começar a usar esta API para usar a API Gemini Developer.
  4. Continue com as etapas restantes do fluxo de trabalho de configuração guiada.

3. Configurar as PNVs do Firebase no modo de teste

O modo de teste permite verificar um número de telefone "falso" usando um token de teste para desenvolvimento.

Participar do programa Beta público dos serviços do sistema do Google

Inscreva seu dispositivo de desenvolvimento no Canal Beta dos serviços do sistema do Google para usar o modo de teste:

  1. Acesse a página Teste de apps Android: serviços do sistema do Google.
  2. Clique em Participar dos testes.

Agora você é um testador Beta dos serviços do sistema do Google.

Adicionar a dependência do PNV do Firebase

Na base de código do seu projeto Android, as dependências das bibliotecas do PNV do Firebase e do Firebase AI Logic já estão definidas no arquivo /gradle/versions.toml:

[versions]
# ... other dependencies
firebaseBom = "34.13.0"

[libraries]
# ... other libraries
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-ai-logic = { module = "com.google.firebase:firebase-ai" }
firebase-pnv = { module = "com.google.firebase:firebase-pnv" }

No arquivo do Gradle (geralmente /app/build.gradle.kts) do módulo (nível do app), declare a dependência da biblioteca do Firebase PNV:

dependencies {
  // ... other dependencies
  implementation(platform(libs.firebase.bom))
  implementation(libs.firebase.ai.logic)

  // Add this line
  implementation(libs.firebase.pnv)

  // ...
}

Gerar um token de teste

  1. No console do Firebase, acesse Segurança > Verificação de telefone.
  2. Selecione a guia Testes.
  3. Selecione o código do país do seu número de telefone de teste e clique em Gerar token.
  4. Copie a string de token gerada.

Ativar a sessão de teste no seu código

  1. De volta ao projeto do Android, abra o arquivo ChatViewModel.kt e encontre a função verifyPhoneNumber().
  2. Inicialize o cliente FirebasePhoneNumberVerification e ative a sessão de teste colando o token copiado do console do Firebase:
    suspend fun verifyPhoneNumber(): String {
        // Initialize Firebase Phone Number Verification
        val fpnv = FirebasePhoneNumberVerification.getInstance()
    
        // Enable Test session
        fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP")
    
        // Trigger the Firebase PNV pop up
        val response = fpnv.getVerifiedPhoneNumber(context!!).await()
        val phoneNumber = response.getPhoneNumber()
    
        return phoneNumber
    }
    

4. Executar o app

Agora que você implementou as PNVs do Firebase, é hora de executar o app.

  1. No Android Studio, clique em Executar para iniciar o app no emulador do Android ou em um dispositivo físico.
  2. Quando o app for iniciado, você vai ver uma tela como esta:
    App PNV do Firebase em execução
  3. Clique em Iniciar chamada e se apresente.
    App PNV do Firebase em execução
  4. O agente de voz de IA vai pedir os detalhes da reserva. Depois de fornecer os detalhes, uma mensagem vai aparecer na tela para verificar seu número de telefone:
    App PNV do Firebase em execução
  5. Quando isso for feito, uma tela de verificação concluída vai aparecer:
    App PNV do Firebase em execução
  6. Clique em Encerrar sessão para terminar a chamada.

5. (Opcional) Fazer upgrade para o modo de produção

Fazer upgrade do plano de preços do Firebase

Para usar o PNV do Firebase no modo de produção, seu projeto do Firebase precisa estar no plano de preços de pagamento por uso (Blaze), o que significa que ele está vinculado a uma conta do Cloud Billing.

  • Uma conta do Cloud Billing exige uma forma de pagamento, como cartão de crédito.
  • Durante promoções especiais ou se você estiver fazendo este codelab como parte de um evento, talvez haja créditos do Google Cloud disponíveis.
  • Se você ainda não conhece o Firebase e o Google Cloud, confira se tem qualificação para receber um crédito de US$300 e uma conta de teste sem custos financeiros do Cloud Billing.

Para fazer upgrade do seu projeto para o plano Blaze, siga estas etapas:

  1. No console do Firebase, selecione Fazer upgrade do seu plano.
  2. Selecione o plano Blaze. Siga as instruções na tela para vincular uma conta de faturamento do Cloud ao seu projeto.
    • Se você estiver usando créditos do Google Cloud para este codelab, a conta de faturamento provavelmente será chamada de Google Cloud Platform Trial Billing Account ou My Billing Account.
    • Se você precisou criar uma conta do Cloud Billing como parte desse upgrade, talvez seja necessário voltar para o fluxo de upgrade no console do Firebase para concluir o processo.

Ativar o modo de produção do PNV do Firebase

  1. Adicione a impressão digital SHA-256 do seu app:
    1. No console do Firebase, acesse a página Configurações > Geral.
    2. Role a tela para baixo até o card Seus apps e encontre seu app Android.
    3. No campo Impressões digitais do certificado SHA, adicione sua impressão digital SHA-256. Consulte Como autenticar seu cliente para mais detalhes sobre como conseguir a impressão digital SHA-256 do seu app.
  2. Volte para Segurança > Verificação por telefone.
  3. Clique em Configurar produção. Você vai ver uma lista dos apps no seu projeto que serão ativados para produção e poderá adicionar outros.
  4. Envie seu app para verificação da marca OAuth e uma análise da Política de Privacidade. O Google Cloud vai verificar se você está identificando seu app e a política de privacidade dele de forma clara e precisa.
    Para iniciar a análise, clique em Continuar no Google Cloud. Esse processo pode levar 24 horas ou mais.
  5. Enquanto aguarda a verificação da marca, revise os termos específicos do serviço PNV do Firebase, que estão vinculados no console.
  6. Depois que o app passar pela verificação da marca, marque a caixa para confirmar os termos específicos do serviço e clique em Ativar.

O PNV do Firebase agora está ativo no modo de produção.

Remover código de teste

No projeto Android, exclua a linha fpnv.enableTestSession(...).

Migrar o Firebase AI Logic para usar a Vertex AI

Se você estiver usando créditos na sua conta de faturamento, não será possível usá-los com a API Gemini Developer. mas é possível usá-los com a API Gemini da Vertex AI.

  1. No console do Firebase, acesse Serviços de IA > Lógica de IA.
  2. Clique em Configurações.
  3. Em API Vertex AI Gemini, clique em Ativar.
  4. No seu projeto Android, mude a inicialização do Firebase AI Logic para usar o back-end da Vertex AI em vez do Google AI:
    val model = Firebase.ai(
        backend = GenerativeBackend.vertexAI(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. Parabéns!

Você integrou com sucesso a verificação de número de telefone do Firebase a um app Android.

O que vimos

  • Como configurar um projeto para o PNV do Firebase.
  • Usar o modo de teste para prototipagem.
  • Implementar a API de chamada única PNV do Firebase.
  • Fazendo upgrade para o modo de produção.

Próximas etapas