Gerenciar dados de ID da instância

Os IDs de instância identificam instalações individuais do seu aplicativo. Como cada ID de instância é exclusivo para um aplicativo e dispositivo específico, eles fornecem aos serviços do Firebase uma maneira de se referir a instâncias de aplicativos específicas. Por exemplo, o Cloud Messaging usa IDs de instância para determinar para quais dispositivos enviar mensagens.

Vários serviços do Firebase usam IDs de instância para potencializar seus recursos:

  • Análise
  • Crashlytics
  • Mensagens na nuvem
  • Configuração remota

Gerenciar dados de aplicativos associados a IDs de instância

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

Os dados associados aos IDs de instância geralmente não são de identificação pessoal, mas ainda podem ser úteis para dar aos usuários a opção de gerenciá-los. Para isso, o Firebase oferece duas maneiras de gerenciar a coleta de dados relacionada ao ID da instância:

  • Exclua IDs de instância. Você pode excluir um ID de instância com uma chamada de API do lado do servidor ou do cliente. Excluir um ID de instância exclui o próprio ID e todos os dados associados a ele.
  • Desative serviços que geram IDs. A maioria dos serviços do Firebase que usam IDs de instância geram automaticamente um novo ID se não houver um no dispositivo quando são inicializados. Para garantir que seu aplicativo não crie IDs de instância indesejados, desative a inicialização automática desses serviços.

Excluir um ID de instância

A exclusão de um ID de instância também exclui dados associados a esse ID em qualquer um dos serviços do Firebase listados acima. Isso torna a exclusão de ID uma ferramenta útil para limpar os dados do usuário, mas também traz uma ressalva: se você estiver usando vários serviços que dependem de IDs de instância, a exclusão de um ID limpará os dados de todos eles.

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

Excluir um ID com uma chamada de API do cliente

Para excluir IDs gerados pelos serviços do Firebase, chame o método apropriado na API Firebase Instance ID:

Rápido

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

Objetivo-C

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

Android

FirebaseInstanceId.deleteInstanceId();

Exclua um ID com uma chamada de API do servidor

Para excluir um ID de instância com chamadas de API do servidor, adicione o SDK Admin do Firebase ao seu servidor , caso ainda não tenha feito isso.

Depois de adicionado, exclua os IDs por meio de uma chamada para a função de exclusão de ID da instância no idioma de sua preferência:

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();

Pitão

  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)

Ir

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 ID de instância com uma chamada de API do servidor, os serviços do Firebase excluem os dados associados, param de aceitar novos dados para esse ID e, dentro de alguns dias, notificam o aplicativo cliente de que o ID foi excluído. Até que o Firebase notifique o aplicativo cliente, alguns dos serviços do aplicativo poderão ter funcionalidade reduzida.

Se você quiser excluir o ID da instância atual e usar imediatamente os serviços do Firebase com um ID novo e independente, use uma das APIs do cliente acima para lidar com a exclusão.

Desativar geração de ID de instância

Os serviços que usam IDs de instância geram automaticamente um novo ID quando são inicializados em um aplicativo que não possui um no momento. Normalmente, esses serviços também são inicializados automaticamente quando o aplicativo é iniciado. Para desabilitar a geração de ID de instância, você deve desabilitar a inicialização automática para serviços que os utilizam.

Uma abordagem comum é dar aos usuários a opção de aceitar a coleta de dados: desabilitar a inicialização automática para os serviços que usam IDs de instância, implementar uma caixa de diálogo que solicite o consentimento dos usuários para a coleta de dados e reativar os serviços manualmente uma vez você tem consentimento.

Leia os guias abaixo para descobrir como desabilitar a inicialização automática para serviços que usam ID de instância e, em vez disso, inicializá-los manualmente:

,

Os IDs de instância identificam instalações individuais do seu aplicativo. Como cada ID de instância é exclusivo para um aplicativo e dispositivo específico, eles fornecem aos serviços do Firebase uma maneira de se referir a instâncias de aplicativos específicas. Por exemplo, o Cloud Messaging usa IDs de instância para determinar para quais dispositivos enviar mensagens.

Vários serviços do Firebase usam IDs de instância para potencializar seus recursos:

  • Análise
  • Crashlytics
  • Mensagens na nuvem
  • Configuração remota

Gerenciar dados de aplicativos associados a IDs de instância

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

Os dados associados aos IDs de instância geralmente não são de identificação pessoal, mas ainda podem ser úteis para dar aos usuários a opção de gerenciá-los. Para isso, o Firebase oferece duas maneiras de gerenciar a coleta de dados relacionada ao ID da instância:

  • Exclua IDs de instância. Você pode excluir um ID de instância com uma chamada de API do lado do servidor ou do cliente. Excluir um ID de instância exclui o próprio ID e todos os dados associados a ele.
  • Desative serviços que geram IDs. A maioria dos serviços do Firebase que usam IDs de instância geram automaticamente um novo ID se não houver um no dispositivo quando são inicializados. Para garantir que seu aplicativo não crie IDs de instância indesejados, desative a inicialização automática desses serviços.

Excluir um ID de instância

A exclusão de um ID de instância também exclui dados associados a esse ID em qualquer um dos serviços do Firebase listados acima. Isso torna a exclusão de ID uma ferramenta útil para limpar os dados do usuário, mas também traz uma ressalva: se você estiver usando vários serviços que dependem de IDs de instância, a exclusão de um ID limpará os dados de todos eles.

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

Excluir um ID com uma chamada de API do cliente

Para excluir IDs gerados pelos serviços do Firebase, chame o método apropriado na API Firebase Instance ID:

Rápido

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

Objetivo-C

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

Android

FirebaseInstanceId.deleteInstanceId();

Exclua um ID com uma chamada de API do servidor

Para excluir um ID de instância com chamadas de API do servidor, adicione o SDK Admin do Firebase ao seu servidor , caso ainda não tenha feito isso.

Depois de adicionado, exclua os IDs por meio de uma chamada para a função de exclusão de ID da instância no idioma de sua preferência:

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();

Pitão

  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)

Ir

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 ID de instância com uma chamada de API do servidor, os serviços do Firebase excluem os dados associados, param de aceitar novos dados para esse ID e, dentro de alguns dias, notificam o aplicativo cliente de que o ID foi excluído. Até que o Firebase notifique o aplicativo cliente, alguns dos serviços do aplicativo poderão ter funcionalidade reduzida.

Se você quiser excluir o ID da instância atual e usar imediatamente os serviços do Firebase com um ID novo e independente, use uma das APIs do cliente acima para lidar com a exclusão.

Desativar geração de ID de instância

Os serviços que usam IDs de instância geram automaticamente um novo ID quando são inicializados em um aplicativo que não possui um no momento. Normalmente, esses serviços também são inicializados automaticamente quando o aplicativo é iniciado. Para desabilitar a geração de ID de instância, você deve desabilitar a inicialização automática para serviços que os utilizam.

Uma abordagem comum é dar aos usuários a opção de aceitar a coleta de dados: desabilitar a inicialização automática para os serviços que usam IDs de instância, implementar uma caixa de diálogo que solicite o consentimento dos usuários para a coleta de dados e reativar os serviços manualmente uma vez você tem consentimento.

Leia os guias abaixo para descobrir como desabilitar a inicialização automática para serviços que usam ID de instância e, em vez disso, inicializá-los manualmente: