Identyfikatory instancji identyfikują poszczególne instalacje Twojej aplikacji. Od każdej instancji Identyfikator jest unikalny dla konkretnej aplikacji i urządzenia i umożliwia usługom Firebase sposób , aby odwoływać się do konkretnych instancji aplikacji. Na przykład Cloud Messaging używa Identyfikatory instancji służące do określania, na które urządzenia mają być wysyłane wiadomości.
Niektóre usługi Firebase wykorzystują identyfikatory instancji do obsługi swoich funkcji:
- Analytics
- Crashlytics
- Cloud Messaging
- Remote Config
Zarządzanie danymi aplikacji powiązanymi z identyfikatorami instancji
Usługi używające identyfikatorów instancji do identyfikowania instalacji używają ich również jako klucza do powiązania odpowiednich danych z urządzeniem. Na przykład Crashlytics używa Identyfikatory instancji służące do rejestrowania awarii, które mają miejsce na urządzeniu, Remote Config używa ich na pobranie konfiguracji, a Analytics używa identyfikatorów instancji do śledzenia określonych odbiorców.
Dane powiązane z identyfikatorami instancji zasadniczo nie umożliwiają identyfikację, ale warto dać użytkownikom możliwość zarządzania nią. Do tego celu Firebase oferuje 2 sposoby zarządzania zbieraniem danych związanych z identyfikatorem instancji:
- Usuń identyfikatory instancji. Możesz usunąć identyfikator instancji z parametrem server- po stronie klienta. Usunięcie identyfikatora instancji spowoduje usunięcie samego identyfikatora i wszystkich danych i powiązane z nią.
- Wyłącz usługi generujące identyfikatory. Większość usług Firebase, które korzystają z instancji Identyfikatory automatycznie generują nowy identyfikator, jeśli nie ma go na urządzeniu po uruchomieniu przeglądarki. Aby mieć pewność, że aplikacja nie będzie tworzyć niechcianych identyfikatorów instancji, wyłącz i automatycznego inicjowania tych usług.
Usuwanie identyfikatora instancji
Usunięcie identyfikatora instancji powoduje też usunięcie danych powiązanych z tym identyfikatorem w Usługi Firebase wymienione powyżej. Dzięki temu usunięcie dokumentu tożsamości jest przydatnym narzędziem czyści dane użytkownika, ale ma też jednak pewne ograniczenie: jeśli używasz usług, które bazują na identyfikatorach instancji, usunięcie identyfikatora spowoduje usunięcie danych ze wszystkich .
Usługa identyfikatora instancji tworzy nowy identyfikator w ciągu kilku dni, chyba że wyłącz w aplikacji wszystkie usługi generujące identyfikatory instancji. Firebase uwzględnia nowo utworzony identyfikator pełni funkcję nowej instancji aplikacji i nie wiąże się z nim. poprzedniego identyfikatora.
Usuń identyfikator z wywołaniem interfejsu API klienta
Aby usunąć identyfikatory wygenerowane przez usługi Firebase, wywołaj odpowiednią metodę z interfejs API identyfikatora instancji Firebase:
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();
Usuń identyfikator z wywołaniem interfejsu API serwera
Aby usunąć identyfikator instancji z wywołaniami interfejsu API serwera, dodaj do swojego serwera pakiet SDK Firebase Admin. jeśli jeszcze jej nie masz.
Po jego dodaniu usuń identyfikatory, używając wywołania funkcji 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);
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)
}
Gdy usuniesz identyfikator instancji z wywołaniem interfejsu API serwera, usługi Firebase zostaną usunięte powiązane dane przestają akceptować nowe dane powiązane z tym identyfikatorem i w ciągu kilku dni powiadomić aplikację kliencką o usunięciu identyfikatora. Do momentu, gdy Firebase powiadomi klienta aplikacja, niektóre usługi mogą mieć ograniczoną funkcjonalność.
Jeśli chcesz usunąć bieżący identyfikator instancji i od razu użyć Firebase z nowym, niezależnym identyfikatorem, należy użyć jednego z powyższych interfejsów API klienta do mogą zająć się usunięciem danych.
Wyłącz generowanie identyfikatora instancji
Usługi, które używają identyfikatorów instancji, automatycznie generują nowy identyfikator, gdy są zainicjowane w aplikacji, która obecnie go nie ma. Takie usługi zazwyczaj jest inicjowana także automatycznie przy uruchamianiu aplikacji. Aby wyłączyć instancję generowania identyfikatorów, musisz wyłączyć automatyczne inicjowanie dla usług korzystających z funkcji .
Popularnym podejściem jest umożliwienie użytkownikom wyrazić zgodę na zbieranie danych: wyłącz automatyczne inicjowanie dla dla usług korzystających z identyfikatorów instancji zaimplementuj okno dialogowe, użytkowników za zgodę na zbieranie danych i ponownie włączyć usługi ręcznie gdy już wyrazisz na to zgodę.
Przeczytaj poniższe przewodniki, aby dowiedzieć się, jak wyłączyć automatyczne inicjowanie dla korzystając z usług korzystających z identyfikatora instancji, i zamiast tego zainicjuj je ręcznie:
- Cloud Messaging: Zapobieganie automatycznemu inicjowaniu (Android) lub Zapobieganie automatycznemu inicjowaniu (iOS+)
- Crash Reporting: Włącz raportowanie zgody
- Analytics: Konfigurowanie zbierania danych Analytics