管理實例 ID 數據

實例 ID 標識您的應用程式的各個安裝。由於每個實例 ID 對於特定應用程式和裝置都是唯一的,因此它們為 Firebase 服務提供了一種引用特定應用程式實例的方法。例如,雲端訊息傳遞使用實例 ID 來決定將訊息傳送到哪些裝置。

多個 Firebase 服務使用實例 ID 來支援其功能:

  • 分析
  • 崩潰解決方案
  • 雲端訊息傳遞
  • 遠端配置

管理與實例 ID 關聯的應用程式數據

使用實例 ID 來識別安裝的服務也將它們用作將相關資料與該裝置關聯的金鑰。例如,Crashlytics 使用實例 ID 來記錄裝置上發生的崩潰,遠端配置使用它們來取得配置,而 Analytics 使用實例 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 實例 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:

Node.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 的服務的自動初始化,並改為手動初始化它們:

,

實例 ID 標識您的應用程式的各個安裝。由於每個實例 ID 對於特定應用程式和裝置都是唯一的,因此它們為 Firebase 服務提供了一種引用特定應用程式實例的方法。例如,雲端訊息傳遞使用實例 ID 來決定將訊息傳送到哪些裝置。

多個 Firebase 服務使用實例 ID 來支援其功能:

  • 分析
  • 崩潰解決方案
  • 雲端訊息傳遞
  • 遠端配置

管理與實例 ID 關聯的應用程式數據

使用實例 ID 來識別安裝的服務也將它們用作將相關資料與該裝置關聯的金鑰。例如,Crashlytics 使用實例 ID 來記錄裝置上發生的崩潰,遠端配置使用它們來取得配置,而 Analytics 使用實例 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 實例 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:

Node.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 的服務的自動初始化,並改為手動初始化它們: