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

Gerenciar dados de códigos de instância

Os códigos de instância identificam instalações individuais do seu aplicativo. Como cada código de instância é exclusivo para um aplicativo e dispositivo específicos, eles oferecem aos serviços do Firebase uma forma de se referir a instâncias de aplicativos específicos. Por exemplo, o Cloud Messaging usa códigos de instância a fim de determinar para quais dispositivos enviar mensagens.

Vários serviços do Firebase usam códigos de instância para controlar os recursos:

  • Analytics
  • Crashlytics
  • Cloud Messaging
  • Previsões
  • Configuração remota

Gerenciar dados de apps associados a códigos de instância

Os serviços que usam códigos de instância para identificar instalações também os utilizam como chave para associar dados relevantes a esse dispositivo. Por exemplo, o Crashlytics usa códigos de instância para registrar falhas no dispositivo, o Configuração remota para buscar configurações e o Google Analytics para rastrear determinados públicos.

Os dados associados aos códigos de instância geralmente não são de identificação pessoal, mas fornecem aos usuários uma opção para gerenciar esses dados. O Firebase oferece duas maneiras de gerenciar a coleta de dados relacionados aos códigos de instância:

  • Excluir códigos de instância. Você pode excluir um código com uma chamada de API do lado do servidor ou do cliente. A exclusão do código remove todos os dados associados a ele.
  • Desativar serviços que geram códigos. A maioria dos serviços do Firebase que usam códigos de instância gera automaticamente um novo código se não houver um no dispositivo quando eles forem iniciados. Para garantir que seu app não crie códigos de instância indesejados, desative a inicialização automática desses serviços.

Excluir um código de instância

A exclusão de um código de instância também remove os dados associados a ele em qualquer um dos serviços do Firebase listados acima. Isso faz com que a exclusão de códigos seja uma ferramenta útil na limpeza de dados do usuário, mas esse procedimento tem uma desvantagem: se você usar vários serviços que dependem dos códigos, a exclusão de um código remove os dados de todos os outros.

O serviço do código de instância cria um novo código em alguns dias, a menos que você desative todos os serviços de geração de códigos de instância no seu aplicativo. O Firebase considera o código recém-criado como uma nova instância do aplicativo e não o associa ao código anterior de forma alguma.

Excluir um código com uma chamada de API do cliente

Para excluir os códigos gerados por serviços do Firebase, chame o método apropriado da API Firebase Instance ID:

Swift

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

Objective-C

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

Excluir um código com uma chamada de API do servidor

Para excluir um código de instância com chamadas de API do servidor, adicione o SDK Admin do Firebase ao seu servidor se ainda não tiver feito isso.

Depois de adicionar o SDK, exclua os códigos chamando a função de exclusão de código de instância na linguagem escolhida:

Node.js

// An Instance ID sent from a client service SDK
const idToDelete = 'INSTANCE_ID';

admin.instanceId().deleteInstanceId(idToDelete);

Java

// An Instance ID sent from a client service SDK
String idToDelete = "INSTANCE_ID";

FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();

Python

  from firebase_admin import instance_id

  # An Instance ID sent from a client service SDK
  id_to_delete = 'INSTANCE_ID'

  instance_id.delete_instance_id(id_to_delete)

Go

client, err := app.InstanceId(ctx)
if err != nil {
  log.Fatalln("error initializing client", err)
}

iidToDelete := "INSTANCE_ID"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
  log.Fatalln("error deleting iid", err)
}

Quando você exclui um código de instância com uma chamada de API do servidor, os serviços do Firebase excluem os dados associados, deixam de aceitar novos dados para esse código e, após alguns dias, notificam o app cliente sobre a exclusão. Até que o Firebase notifique o app cliente, alguns dos serviços do app podem ter a funcionalidade reduzida.

Se você quiser excluir o código de instância atual e usar imediatamente os serviços do Firebase com um código novo e independente, efetue a exclusão utilizando uma das APIs de cliente acima.

Desativar a geração de códigos de instância

Os serviços que usam códigos de instância geram automaticamente um novo código quando são inicializados em um app que não contém um. Normalmente, esses serviços também são inicializados automaticamente quando o app é inicializado. Para desativar a geração de códigos, é necessário desativar a inicialização automática dos serviços que os utilizam.

Uma abordagem comum é oferecer aos usuários a opção de aceitar a coleta de dados. Para isso, desative a inicialização automática dos serviços que usam códigos de instância, implemente uma caixa de diálogo que solicita o consentimento para a coleta de dados e reative os serviços manualmente assim que você receber a autorização.

Leia os guias abaixo para descobrir como desativar a inicialização automática de serviços geradores de códigos de instância e como inicializá-los manualmente: