Google 致力于为黑人社区推动种族平等。查看具体举措

管理实例 ID 数据

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

实例 ID 标识您的应用程序的各个安装。由于每个实例 ID 对于特定应用和设备都是唯一的,因此它们为 Firebase 服务提供了一种引用特定应用实例的方法。例如,云消息传递使用实例 ID 来确定向哪些设备发送消息。

一些 Firebase 服务使用实例 ID 来支持其功能:

  • 分析
  • 崩溃分析器
  • 云消息传递
  • 远程配置

管理与实例 ID 关联的应用数据

使用实例 ID 来识别安装的服务也将它们用作将相关数据与该设备相关联的键。例如,Crashlytics 使用实例 ID 记录设备上发生的崩溃,远程配置使用它们来获取配置,分析使用实例 ID 来跟踪特定受众。

与实例 ID 关联的数据通常不是个人识别数据,但为用户提供管理数据的选项仍然很有帮助。为此,Firebase 提供了两种方法来管理与 Instance-ID 相关的数据收集:

  • 删除实例 ID。您可以使用服务器端或客户端 API 调用删除实例 ID。删除实例 ID 会删除 ID 本身以及与其关联的所有数据。
  • 禁用生成 ID 的服务。大多数使用实例 ID 的 Firebase 服务会在启动时自动生成一个新 ID(如果设备上没有 ID)。为确保您的应用不会创建不需要的实例 ID,请禁用这些服务的自动初始化。

删除实例 ID

删除实例 ID 还会删除上面列出的任何 Firebase 服务中与该 ID 关联的数据。这使得删除 ID 成为清除用户数据的有用工具,但也有一个警告:如果您使用依赖于实例 ID 的多个服务,删除 ID 会清除所有这些服务中的数据。

实例 ID 服务会在几天内创建一个新 ID,除非您在应用程序中禁用所有生成实例 ID 的服务。 Firebase 将新创建的 ID 视为全新的应用实例,并且不会以任何方式将其与之前的 ID 关联。

使用客户端 API 调用删除 ID

要删除 Firebase 服务生成的 ID,请从 Firebase Instance ID API 调用相应的方法:

迅速

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

安卓

FirebaseInstanceId.deleteInstanceId();

使用服务器 API 调用删除 ID

要使用服务器 API 调用删除实例 ID,请将 Firebase Admin SDK 添加到您的服务器(如果您还没有)。

添加后,通过以您选择的语言调用实例 ID 删除函数来删除 ID:

节点.js

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

admin.instanceId().deleteInstanceId(idToDelete);

爪哇

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

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

当您使用服务器 API 调用删除实例 ID 时,Firebase 服务会删除关联的数据,停止接受该 ID 的新数据,并在几天内通知客户端应用该 ID 已被删除。在 Firebase 通知客户端应用之前,该应用的某些服务可能会遇到功能减少的情况。

如果您想删除当前的实例 ID 并立即使用具有新的独立 ID 的 Firebase 服务,请使用上述客户端 API 之一来处理删除操作。

禁用实例 ID 生成

使用实例 ID 的服务在当前没有实例 ID 的应用中初始化时会自动生成一个新 ID。通常,这些服务还会在您的应用启动时自动初始化。要禁用实例 ID 生成,您必须禁用使用它们的服务的自动初始化。

一种常见的方法是为用户提供选择加入数据收集的选项:禁用使用实例 ID 的服务的自动初始化,实现一个提示用户同意数据收集的对话框,然后手动重新启用服务一次你同意了。

阅读以下指南,了解如何禁用使用 Instance-ID 的服务的自动初始化,而是手动初始化它们: