O que é o ID da instância?

O ID da instância fornece um ID exclusivo por instância dos seus apps. É possível implementar o ID da instância para apps Android e iOS, além de apps/extensões do Chrome.

Principais recursos

Além de fornecer IDs exclusivos para autenticação, o ID de instância pode gerar tokens de segurança para uso com outros serviços. Outros recursos incluem:

Gerar tokens de segurança

O ID da instância fornece uma API simples para gerar tokens de segurança que autorizam terceiros a acessar os recursos gerenciados do lado do servidor do app.

Verificar a autenticidade do app

Transmita os tokens do ID de instância para o servidor e use o serviço do ID de instância para verificar o nome do pacote do app e se ele tem uma assinatura válida. A verificação de tokens com o ID da instância do serviço do Cloud ajuda a identificar apps conhecidos. Para reduzir custos e comunicações redundantes de ida e volta, configure o servidor para armazenar esses tokens de modo que a verificação seja necessária apenas uma vez. Caso haja um problema de segurança, seu app pode excluir tokens ou o próprio ID da instância e gerar novos tokens. Além disso, o servidor do ID da instância inicia a atualização do token ou do ID da instância se detectar bugs ou problemas de segurança.

Confirme se o dispositivo do app está ativo

O servidor do ID da instância pode informar quando o dispositivo em que o app está instalado foi usado pela última vez. Use isso para decidir se quer manter os dados do app ou enviar uma mensagem push para engajar novamente os usuários.

Identificar e monitorar apps

O ID da instância é exclusivo em todas as instâncias de app do mundo. Por isso, seu banco de dados pode usá-lo para identificar e rastrear instâncias de apps de maneira exclusiva. O código do lado do servidor pode verificar, por meio do serviço de nuvem do ID da instância, se um ID de instância é genuíno e é o mesmo ID do app original registrado no servidor. Por questões de privacidade, seu app pode excluir um ID de instância para que ele não fique mais associado a nenhum histórico no banco de dados. Na próxima vez que o app chamar o ID de instância, ele receberá um ID totalmente novo, sem relação com o anterior.

Ciclo de vida do ID da instância

  1. O serviço de ID de instância emite uma InstanceID quando o app fica on-line. O InstanceID tem como base um par de chaves pública/privada com a chave privada armazenada no dispositivo local e a chave pública registrada no serviço de ID da instância.
  2. Seu app pode solicitar um novo InstanceID sempre que necessário usando o método getID(). Seu app poderá armazená-lo no servidor se você tiver um que seja compatível com ele.
  3. Seu app pode solicitar tokens do serviço de ID da instância, conforme necessário, usando o método getToken(). Assim como InstanceID, o app também pode armazenar tokens no seu próprio servidor. Todos os tokens emitidos para seu app pertencem ao InstanceID dele.
  4. Os tokens são exclusivos e seguros, mas seu app ou o serviço de ID da instância pode precisar atualizar os tokens no caso de um problema de segurança ou quando um usuário desinstalar e reinstalar o app durante a restauração do dispositivo. Seu aplicativo precisa implementar um listener para responder a solicitações de atualização de token do serviço de ID da instância.

Ciclo de vida do ID da instância

Implementação do cliente

O ID da instância é executado no Android e no iOS. Cada um deles exige que você inclua a biblioteca adequada no app cliente. O Android exige o Google Play Services. Você precisará de um ID de projeto gerado pelo Google Developers Console se quiser gerar tokens.

Para ver instruções detalhadas, consulte os guias de implementação para Android e iOS.