Instanz-ID-Daten verwalten

Instanz-IDs identifizieren einzelne Installationen Ihrer App. Da jede Instanz-ID für eine bestimmte App und ein bestimmtes Gerät eindeutig ist, geben sie Firebase-Diensten die Möglichkeit, auf bestimmte App-Instanzen zu verweisen. Cloud Messaging verwendet beispielsweise Instanz-IDs, um zu bestimmen, an welche Geräte Nachrichten gesendet werden sollen.

Mehrere Firebase-Dienste verwenden Instanz-IDs, um ihre Funktionen zu unterstützen:

  • Analytik
  • Crashlytics
  • Cloud-Messaging
  • Vorhersagen
  • Remote-Konfiguration

Mit Instanz-IDs verknüpfte App-Daten verwalten

Dienste, die Instanz-IDs verwenden, um Installationen zu identifizieren, verwenden sie auch als Schlüssel, um relevante Daten mit diesem Gerät zu verknüpfen. Crashlytics verwendet beispielsweise Instanz-IDs, um Abstürze auf dem Gerät aufzuzeichnen, Remote Config verwendet sie zum Abrufen von Konfigurationen und Analytics verwendet Instanz-IDs, um bestimmte Zielgruppen zu verfolgen.

Daten im Zusammenhang mit Instanz - IDs ist in der Regel nicht persönlich identifizieren, aber es kann immer noch hilfreich sein , eine Option , um die Benutzer es zu verwalten. Zu diesem Zweck bietet Firebase zwei Möglichkeiten, die Instanz-ID-bezogene Datenerfassung zu verwalten:

  • Instanz-IDs löschen. Sie können eine Instanz-ID mit einem server- oder clientseitigen API-Aufruf löschen. Das Löschen einer Instanz-ID löscht die ID selbst und alle damit verbundenen Daten.
  • Deaktivieren Sie Dienste, die IDs generieren. Die meisten Firebase-Dienste, die Instanz-IDs verwenden, generieren beim Start automatisch eine neue ID, wenn auf dem Gerät keine vorhanden ist. Um sicherzustellen, dass Ihre App keine unerwünschten Instanz-IDs erstellt, deaktivieren Sie die automatische Initialisierung für diese Dienste.

Löschen einer Instanz-ID

Durch das Löschen einer Instanz-ID werden auch Daten gelöscht, die dieser ID in einem der oben aufgeführten Firebase-Dienste zugeordnet sind. Das macht ID Löschen ein hilfreiches Werkzeug in Löschen von Benutzerdaten, sondern kommt auch mit einer Einschränkung: wenn Sie mehrere Dienste verwenden , die auf Instanz - IDs verlassen, eine ID löscht Daten aus allen von ihnen zu löschen.

Der Instanz-ID-Dienst erstellt innerhalb weniger Tage eine neue ID, es sei denn, Sie deaktivieren alle Instanz-ID-erzeugenden Dienste in Ihrer App. Firebase betrachtet die neu erstellte ID als brandneue App-Instanz und verknüpft sie in keiner Weise mit der vorherigen ID.

Löschen einer ID mit einem Client-API-Aufruf

Um von Firebase-Diensten generierte IDs zu löschen, rufen Sie die entsprechende Methode aus der Firebase-Instanz-ID-API auf:

Schnell

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

Ziel c

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

Android

FirebaseInstanceId.deleteInstanceId();

Löschen einer ID mit einem Server-API-Aufruf

So löschen Sie eine Instanz - ID mit Server - API - Aufrufe, fügen Sie die Firebase Admin SDK zu Ihrem Server , wenn Sie nicht bereits haben.

Löschen Sie nach dem Hinzufügen IDs durch einen Aufruf der Instanz-ID-Löschfunktion in der Sprache Ihrer Wahl:

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)

gehen

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

Wenn Sie eine Instanz-ID mit einem Server-API-Aufruf löschen, löschen die Firebase-Dienste die zugehörigen Daten, akzeptieren keine neuen Daten für diese ID und benachrichtigen die Client-App innerhalb weniger Tage, dass die ID gelöscht wurde. Bis Firebase die Client-App benachrichtigt, kann es bei einigen Diensten der App zu eingeschränkter Funktionalität kommen.

Wenn Sie die aktuelle Instanz-ID löschen und Firebase-Dienste sofort mit einer neuen, unabhängigen ID verwenden möchten, verwenden Sie eine der oben genannten Client-APIs, um den Löschvorgang durchzuführen.

Instanz-ID-Generierung deaktivieren

Dienste, die Instanz-IDs verwenden, generieren automatisch eine neue ID, wenn sie in einer App initialisiert werden, die derzeit keine hat. Normalerweise werden diese Dienste auch automatisch initialisiert, wenn Ihre App gestartet wird. Um die Generierung von Instanz-IDs zu deaktivieren, müssen Sie die automatische Initialisierung für Dienste deaktivieren, die sie verwenden.

Ein gängiger Ansatz besteht darin, Benutzern die Möglichkeit zu geben, sich für die Datenerfassung anzumelden: Deaktivieren Sie die automatische Initialisierung für die Dienste, die Instanz-IDs verwenden, implementieren Sie einen Dialog, der die Benutzer zur Zustimmung zur Datenerfassung auffordert, und aktivieren Sie die Dienste einmal manuell erneut Sie haben die Zustimmung.

Lesen Sie die folgenden Anleitungen, um zu erfahren, wie Sie die automatische Initialisierung für Instanz-ID-verwendende Dienste deaktivieren und sie stattdessen manuell initialisieren: