Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

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, können Firebase-Dienste auf bestimmte App-Instanzen verweisen. Beispielsweise verwendet Cloud Messaging Instanz-IDs, um zu bestimmen, an welche Geräte Nachrichten gesendet werden sollen.

Mehrere Firebase-Dienste verwenden Instanz-IDs, um ihre Funktionen zu aktivieren:

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

Verwalten von App-Daten, die Instanz-IDs zugeordnet sind

Dienste, die Instanz-IDs zum Identifizieren von Installationen verwenden, verwenden diese auch als Schlüssel zum Zuordnen relevanter Daten zu diesem Gerät. Beispielsweise verwendet Crashlytics Instanz-IDs, um auf dem Gerät auftretende Abstürze aufzuzeichnen, Remote Config verwendet sie zum Abrufen von Konfigurationen und Analytics verwendet Instanz-IDs, um bestimmte Zielgruppen zu verfolgen.

Mit Instanz-IDs verknüpfte Daten sind im Allgemeinen nicht persönlich identifizierbar. Es kann jedoch hilfreich sein, Benutzern die Möglichkeit zu geben, sie zu verwalten. Zu diesem Zweck bietet Firebase zwei Möglichkeiten zum Verwalten der instanz-ID-bezogenen Datenerfassung:

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

Löschen Sie eine 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 Löschen von IDs ist daher ein hilfreiches Tool zum Löschen von Benutzerdaten, bringt jedoch auch eine Einschränkung mit sich: Wenn Sie mehrere Dienste verwenden, die auf Instanz-IDs basieren, werden beim Löschen einer ID Daten aus allen gelöscht.

Der Instanz-ID-Dienst erstellt innerhalb weniger Tage eine neue ID, es sei denn, Sie deaktivieren alle Instanz-ID-generierenden 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 Sie eine ID mit einem Client-API-Aufruf

Rufen Sie zum Löschen von von Firebase-Diensten generierten IDs die entsprechende Methode in 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 Sie eine ID mit einem Server-API-Aufruf

Fügen Sie Ihrem Server das Firebase Admin SDK hinzu, um eine Instanz-ID mit Server-API-Aufrufen zu löschen, falls Sie dies noch nicht getan haben.

Löschen Sie nach dem Hinzufügen IDs durch einen Aufruf der Funktion zum Löschen von Instanz-IDs 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 mehr 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 einer eingeschränkten 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 das Löschen durchzuführen.

Deaktivieren Sie die Generierung der Instanz-ID

Dienste, die Instanz-IDs verwenden, generieren automatisch eine neue ID, wenn sie in einer App initialisiert werden, die derzeit keine hat. In der Regel werden diese Dienste beim Start Ihrer App auch automatisch initialisiert. 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 zu entscheiden: Deaktivieren Sie die automatische Initialisierung für die Dienste, die Instanz-IDs verwenden, implementieren Sie ein Dialogfeld, in dem Benutzer zur Zustimmung zur Datenerfassung aufgefordert werden, und aktivieren Sie die Dienste einmal manuell neu Sie haben Zustimmung.

Lesen Sie die folgenden Anleitungen, um herauszufinden, wie Sie die automatische Initialisierung für Instanz-ID-verwendende Dienste deaktivieren und stattdessen manuell initialisieren können: