O que é ID da instância?

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

Principais recursos

Além de fornecer códigos exclusivos para autenticação, o código 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 servidor do app.

Verificar a autenticidade do app

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

Confirmar se o dispositivo do app está ativo

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

Identificar e acompanhar apps

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

Ciclo de vida do código da instância

  1. O serviço de ID da instância emite um InstanceID quando o app está on-line. O InstanceID é respaldado por um par de chaves públicas/privadas 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 uma InstanceID nova sempre que necessário usando o método getID(). O app pode armazená-lo no seu servidor se você tiver um compatível com ele.
  3. Seu aplicativo pode solicitar tokens do serviço de ID da instância conforme necessário usando o método getToken() e, como InstanceID, seu aplicativo também pode armazenar tokens no próprio servidor. Todos os tokens emitidos para o aplicativo pertencem ao InstanceID do aplicativo.
  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 em caso de problema de segurança ou quando o usuário desinstala e reinstala o app durante a restauração do dispositivo. Seu app 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 código da instância

Implementação do cliente

O código da instância é executado no Android e no iOS. Cada um deles requer que você inclua a biblioteca apropriada no seu aplicativo cliente. O Android requer 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.