Zarządzaj danymi identyfikatora instancji

Identyfikatory instancji identyfikują poszczególne instalacje Twojej aplikacji. Ponieważ każdy identyfikator instancji jest unikalny dla konkretnej aplikacji i urządzenia, umożliwiają one usługom Firebase odwoływanie się do konkretnych instancji aplikacji. Na przykład Cloud Messaging używa identyfikatorów instancji do określania, do których urządzeń należy wysyłać wiadomości.

Kilka usług Firebase wykorzystuje identyfikatory instancji do obsługi swoich funkcji:

  • Analityka
  • Crashlytics
  • Wiadomości w chmurze
  • Zdalna konfiguracja

Zarządzaj danymi aplikacji powiązanymi z identyfikatorami instancji

Usługi, które używają identyfikatorów instancji do identyfikowania instalacji, używają ich również jako klucza do powiązania odpowiednich danych z tym urządzeniem. Na przykład Crashlytics używa identyfikatorów instancji do rejestrowania awarii, które mają miejsce na urządzeniu, Zdalna konfiguracja używa ich do pobierania konfiguracji, a Analytics używa identyfikatorów instancji do śledzenia określonych odbiorców.

Dane powiązane z identyfikatorami instancji zazwyczaj nie służą do identyfikacji osób, ale nadal może być pomocne umożliwienie użytkownikom zarządzania nimi. W tym celu Firebase oferuje dwa sposoby zarządzania gromadzeniem danych związanych z identyfikatorami instancji:

  • Usuń identyfikatory instancji. Identyfikator instancji można usunąć za pomocą wywołania interfejsu API po stronie serwera lub klienta. Usunięcie identyfikatora instancji powoduje usunięcie samego identyfikatora i wszystkich powiązanych z nim danych.
  • Wyłącz usługi generujące identyfikatory. Większość usług Firebase korzystających z identyfikatorów instancji automatycznie generuje nowy identyfikator, jeśli nie ma go na urządzeniu podczas uruchamiania. Aby mieć pewność, że Twoja aplikacja nie tworzy niechcianych identyfikatorów instancji, wyłącz automatyczną inicjację tych usług.

Usuń identyfikator instancji

Usunięcie identyfikatora instancji powoduje również usunięcie danych powiązanych z tym identyfikatorem we wszystkich usługach Firebase wymienionych powyżej. To sprawia, że ​​usuwanie identyfikatora jest pomocnym narzędziem w usuwaniu danych użytkownika, ale wiąże się również z pewnym zastrzeżeniem: jeśli korzystasz z wielu usług, które opierają się na identyfikatorach instancji, usunięcie identyfikatora usuwa dane ze wszystkich z nich.

Usługa Instance ID tworzy nowy identyfikator w ciągu kilku dni, chyba że wyłączysz w swojej aplikacji wszystkie usługi generujące identyfikatory instancji. Firebase traktuje nowo utworzony identyfikator jako zupełnie nowe wystąpienie aplikacji i nie łączy go w żaden sposób z poprzednim identyfikatorem.

Usuń identyfikator za pomocą wywołania API klienta

Aby usunąć identyfikatory wygenerowane przez usługi Firebase, wywołaj odpowiednią metodę z interfejsu Firebase Instance ID API:

Szybki

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

Cel C

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

Android

FirebaseInstanceId.deleteInstanceId();

Usuń identyfikator z wywołaniem API serwera

Aby usunąć identyfikator instancji z wywołaniami interfejsu API serwera, dodaj pakiet Firebase Admin SDK do swojego serwera , jeśli jeszcze tego nie zrobiłeś.

Po dodaniu usuń identyfikatory, wywołując funkcję usuwania identyfikatora instancji w wybranym języku:

Node.js

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

admin.instanceId().deleteInstanceId(idToDelete);

Jawa

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

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

Pyton

  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)

Udać się

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)
}

Gdy usuniesz identyfikator instancji za pomocą wywołania interfejsu API serwera, usługi Firebase usuwają powiązane dane, przestają akceptować nowe dane dla tego identyfikatora i w ciągu kilku dni powiadamiają aplikację kliencką, że identyfikator został usunięty. Dopóki Firebase nie powiadomi aplikacji klienckiej, niektóre usługi aplikacji mogą działać w ograniczonym zakresie.

Jeśli chcesz usunąć bieżący identyfikator instancji i od razu korzystać z usług Firebase z nowym, niezależnym identyfikatorem, użyj jednego z powyższych interfejsów API klienta, aby obsłużyć usunięcie.

Wyłącz generowanie identyfikatora instancji

Usługi korzystające z identyfikatorów instancji automatycznie generują nowy identyfikator, gdy są inicjowane w aplikacji, która obecnie go nie ma. Zazwyczaj te usługi są również automatycznie inicjowane po uruchomieniu aplikacji. Aby wyłączyć generowanie identyfikatorów instancji, musisz wyłączyć autoinicjalizację usług, które z nich korzystają.

Powszechnym podejściem jest umożliwienie użytkownikom wyrażenia zgody na zbieranie danych: wyłącz autoinicjalizację usług korzystających z identyfikatorów instancji, zaimplementuj okno dialogowe z monitem o zgodę na zbieranie danych i ponownie włącz usługi ręcznie raz masz zgodę.

Przeczytaj poniższe przewodniki, aby dowiedzieć się, jak wyłączyć automatyczną inicjalizację usług korzystających z identyfikatora instancji i zamiast tego ręcznie je zainicjować: