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ć:
- Wiadomości w chmurze: Zapobiegaj automatycznej inicjalizacji (Android) lub Zapobiegaj automatycznej inicjalizacji (iOS+)
- Zgłaszanie awarii: Włącz zgłaszanie zgody
- Analytics: skonfiguruj gromadzenie danych Analytics