บริการติดตั้ง Firebase (FIS) มอบ รหัสการติดตั้ง (FID) Firebase สำหรับอินสแตนซ์ที่ติดตั้งแต่ละรายการ ของแอป Firebase Firebase เหล่านี้ใช้รหัสการติดตั้ง Firebase เป็นการภายใน บริการ:
บริการ Firebase | ฟังก์ชันการติดตั้ง Firebase |
---|---|
Firebase Cloud Messaging |
Firebase Cloud Messaging ใช้ รหัสการติดตั้ง Firebase รหัสสำหรับกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ |
Firebase Crashlytics |
Firebase Crashlytics หมุนเวียนการติดตั้ง Crashlytics UUID ที่อิงตามการเปลี่ยนแปลง Firebase ของอินสแตนซ์แอป รหัสการติดตั้ง ในอนาคต รหัสการติดตั้งอาจใช้เพื่อเปิดใช้ฟีเจอร์ที่ ปรับปรุงรายงานข้อขัดข้องและบริการการจัดการข้อขัดข้อง |
Firebase In-App Messaging |
Firebase In-App Messaging ใช้ รหัสการติดตั้ง Firebase รหัสสำหรับกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ |
Firebase Performance Monitoring |
Performance Monitoring ใช้รหัสการติดตั้ง Firebase รายการ เพื่อคำนวณจำนวนการติดตั้ง Firebase ที่ไม่ซ้ำกันที่เข้าถึง ทรัพยากรเครือข่าย เพื่อให้แน่ใจว่ารูปแบบการเข้าถึง ไม่ระบุชื่ออย่างเพียงพอ นอกจากนี้ยังใช้ รหัสการติดตั้ง Firebase ที่มีรหัส Firebase Remote Config เพื่อจัดการอัตราการรายงานเหตุการณ์ด้านประสิทธิภาพ |
Firebase Remote Config |
Remote Config ใช้รหัสการติดตั้ง Firebase รายการ เพื่อเลือกการกำหนดค่า ค่าที่จะกลับไปยังอุปกรณ์ของผู้ใช้ปลายทาง |
Firebase ML |
การรับรองที่เรียกใช้ Firebase ML ใช้โทเค็นการตรวจสอบสิทธิ์การติดตั้งสำหรับ การตรวจสอบสิทธิ์อุปกรณ์เมื่อโต้ตอบกับแอป อินสแตนซ์เพื่อกระจายโมเดลนักพัฒนาซอฟต์แวร์ไปยังอินสแตนซ์ของแอป เป็นต้น |
พื้นที่เก็บข้อมูลการแบ่งกลุ่มผู้ใช้ของ Firebase |
พื้นที่เก็บข้อมูลการแบ่งกลุ่มผู้ใช้ของ Firebase จัดเก็บรหัสการติดตั้ง Firebase รายการ รวมถึงแอตทริบิวต์และกลุ่มที่เกี่ยวข้อง เพื่อให้ข้อมูลการกำหนดเป้าหมาย กับบริการ Firebase อื่นๆ ที่ใช้มิติข้อมูลเหล่านั้น |
โดยปกติแล้ว บริการ Firebase จะใช้บริการติดตั้ง Firebase โดยไม่มี การกำหนดให้นักพัฒนาซอฟต์แวร์โต้ตอบกับ FIS API โดยตรง แต่ก็มีบางกรณีที่นักพัฒนาแอปอาจต้องการเรียกใช้โดยตรง FIS API เช่น
- เพื่อลบการติดตั้ง Firebase และข้อมูลที่เชื่อมโยงกับการติดตั้ง
- วิธีดึงข้อมูลตัวระบุ (รหัสการติดตั้ง Firebase รายการ) เพื่อกำหนดเป้าหมาย การติดตั้งแอปที่เฉพาะเจาะจง
- วิธีการเรียกโทเค็นการตรวจสอบสิทธิ์การติดตั้งเพื่อตรวจสอบสิทธิ์ Firebase ครั้ง
วิธีเริ่มต้นใช้งานการโทรโดยตรง FIS API ให้เพิ่ม SDK ลงในแอป
เพิ่ม SDK การติดตั้ง Firebase ลงในแอป
iOS ขึ้นไป
- เพิ่มทรัพยากร Dependency สำหรับการติดตั้ง Firebase ไปยัง Podfile ดังนี้
pod 'FirebaseInstallations'
- เรียกใช้
pod install
และเปิดไฟล์.xcworkspace
ที่สร้างขึ้น - นำเข้าโมดูล
FirebaseCore
ในUIApplicationDelegate
และอื่นๆ โมดูล Firebase ที่ผู้รับมอบสิทธิ์แอปใช้ ตัวอย่างเช่น หากต้องการใช้ Cloud Firestore และ Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- กําหนดค่า
FirebaseApp
อินสแตนซ์ที่แชร์ใน เมธอดapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- หากใช้ SwiftUI คุณต้องสร้างการมอบสิทธิ์แอปพลิเคชันและแนบการมอบสิทธิ์
ไปยังโครงสร้าง
App
ของคุณผ่านUIApplicationDelegateAdaptor
หรือNSApplicationDelegateAdaptor
คุณต้องปิดใช้ SWizzing ที่มอบสิทธิ์ของแอปด้วย สำหรับ สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีการของ SwiftUISwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Android
เพิ่มทรัพยากร Dependency สำหรับการติดตั้ง Android SDK Firebase รายการลงใน
ไฟล์ Gradle โมดูล (ระดับแอป) (ปกติจะเป็น app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:18.0.0'
JavaScript
การกำหนดค่าของคุณอาจขึ้นอยู่กับวิธีโฮสต์เว็บแอปพลิเคชันของคุณ โดยอัตโนมัติหรือคุณอาจต้องอัปเดต ออบเจ็กต์การกำหนดค่า Firebase
ตัวอย่างเช่น ถ้ามีการเพิ่มทรัพยากร Dependency ใน index.html ให้เพิ่มพารามิเตอร์ การขึ้นต่อกันใน <head> องค์ประกอบ:
<script src="/__/firebase/10.14.1/firebase-installations.js"></script>
Flutter
จากไดเรกทอรีรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้ คำสั่งเพื่อติดตั้งปลั๊กอินการติดตั้ง Firebase
flutter pub add firebase_app_installations
สร้างโปรเจ็กต์อีกครั้ง
flutter run
นำเข้าปลั๊กอินการติดตั้ง Firebase ดังนี้
import 'package:firebase_app_installations/firebase_app_installations.dart';
ลบการติดตั้ง Firebase
โดยทั่วไปแล้ว ข้อมูลที่เชื่อมโยงกับการติดตั้ง Firebase จะไม่เป็นข้อมูลส่วนตัว การระบุตัวตน แต่ถึงอย่างนั้น ก็น่าจะมีประโยชน์ ให้ตัวเลือกแก่ผู้ใช้ในการจัดการและลบข้อมูลนี้
รหัสการติดตั้ง Firebase จะแตกต่างกันไปตามการติดตั้งของทุก แอปพลิเคชัน; แอปพลิเคชันต่างๆ บนอุปกรณ์เดียวกัน มีความแตกต่างกัน รหัสการติดตั้ง Firebase รหัสการติดตั้ง Firebase ระบุแอป การติดตั้งและข้อมูลที่เชื่อมโยงกับ จากการติดตั้งแอปเหล่านั้น
เมื่อลบรหัสการติดตั้ง ข้อมูลที่เชื่อมโยงกับรหัสนั้น นำรหัสการติดตั้งออกจากระบบแบบเรียลไทม์และระบบสำรองข้อมูลทั้งหมดแล้ว บริการ Firebase ที่ใช้ Firebase รหัสการติดตั้งเพื่อระบุการติดตั้ง ภายใน 180 วัน กระบวนการนี้มีการอธิบายในภาพรวมใน ข้อความเกี่ยวกับการลบและการเก็บรักษา
เว้นแต่คุณจะปิดใช้งานบริการสร้าง FID ทั้งหมดใน FIS จะสร้างรหัสใหม่ภายใน 2-3 วัน Firebase จะถือว่ารหัสที่สร้างขึ้นใหม่เป็นการติดตั้ง Firebase ใหม่ และ ไม่เชื่อมโยงข้อมูลกับรหัสหรือข้อมูลก่อนหน้าไม่ว่าในลักษณะใด
ลบ FID ที่มีการเรียก API ของไคลเอ็นต์
หากต้องการลบ FID ที่บริการ Firebase สร้างขึ้น เรียกเมธอดที่เหมาะสมจาก SDK การติดตั้ง Firebase:
Swift
do { try await Installations.installations().delete() print("Installation deleted"); } catch { print("Error deleting installation: \(error)") }
Objective-C
[[FIRInstallations installations] deleteWithCompletion:^(NSError *error) { if (error != nil) { NSLog(@"Error deleting Installation %@", error); return; } NSLog(@"Installation deleted"); }];
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
JavaScript
await firebase.installations().delete();
Dart
await FirebaseInstallations.instance.delete();
ลบ FID ที่มีการเรียก API ของเซิร์ฟเวอร์
วิธีลบ FID ด้วย API ของเซิร์ฟเวอร์ ให้เพิ่ม Firebase Admin SDK ในเซิร์ฟเวอร์ของคุณ หากยังไม่ได้ทำ
เมื่อเพิ่ม SDK แล้ว ให้ลบ FID ผ่านการเรียกไปยัง ฟังก์ชันการลบในภาษาที่คุณต้องการ (หมายเหตุ: ยกเว้น Node.js จะแสดงถึงการตั้งชื่อรหัสอินสแตนซ์ แต่จริงๆ แล้ว ทั้งหมดจะลบ FID เมื่อเรียกใช้ด้วย Firebase SDK ปัจจุบัน)
Node.js
// An FIDsent from a client service SDK
const idToDelete = 'eyJhbGciOiJFUzI1N_iIs5';
admin.installations().deleteInstallation(idToDelete);
Java
// An FID sent from a client service SDK
String idToDelete = "eyJhbGciOiJFUzI1N_iIs5";
FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();
Python
from firebase_admin import instance_id
# An FID sent from a client service SDK
id_to_delete = 'eyJhbGciOiJFUzI1N_iIs5'
instance_id.delete_instance_id(id_to_delete)
Go
client, err := app.InstanceId(ctx)
if err != nil {
log.Fatalln("error initializing client", err)
}
iidToDelete := "eyJhbGciOiJFUzI1N_iIs5"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
log.Fatalln("error deleting FID", err)
}
เมื่อคุณลบรหัสการติดตั้ง Firebase ที่มีการเรียก API ของเซิร์ฟเวอร์ Firebase บริการจะเริ่มต้นกระบวนการลบข้อมูลที่เชื่อมโยงกับรหัสการติดตั้งนั้น หยุด ยอมรับข้อมูลใหม่สำหรับรหัสนั้นในช่วง 1-2 วัน แล้วแจ้ง แอปไคลเอ็นต์ที่รหัสถูกลบ จนกว่า Firebase จะแจ้งเตือนแอปไคลเอ็นต์ บริการของแอปอาจยังคงกำหนดเป้าหมายรหัส เช่น Firebase การติดตั้งอาจได้รับการแจ้งเตือน FCM ต่อ 2-3 ครั้ง ชั่วโมง
หากคุณต้องการลบรหัสการติดตั้ง Firebase ปัจจุบันและใช้ทันที บริการ Firebase ที่มีรหัสใหม่ที่ไม่เกี่ยวข้อง ให้ใช้ API ของไคลเอ็นต์ จัดการการลบได้
ดึงข้อมูลตัวระบุลูกค้า
หากคุณมีข้อกำหนดในการระบุการติดตั้งแอปของคุณ ซึ่งทําได้โดยเรียกข้อมูลรหัสการติดตั้ง Firebase ตัวอย่างเช่น หากต้องการสร้าง กลุ่มของการติดตั้งแอปสำหรับการนำเข้า BiqQuery หรือเพื่อดำเนินการ ในระหว่างการพัฒนา Firebase In-App Messaging คุณสามารถระบุและ กำหนดเป้าหมายอุปกรณ์ที่ถูกต้องโดยใช้รหัสการติดตั้ง Firebase ที่เกี่ยวข้อง
วิธีเรียกข้อมูลรหัสการติดตั้ง Firebase
Swift
do { let id = try await Installations.installations().installationID() print("Installation ID: \(id)") } catch { print("Error fetching id: \(error)") }
Objective-C
[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation ID %@", error); return; } NSLog(@"Installation ID: %@", identifier); }];
Java
FirebaseInstallations.getInstance().getId() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation ID: " + task.getResult()); } else { Log.e("Installations", "Unable to get Installation ID"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().id.addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation ID: " + task.result) } else { Log.e("Installations", "Unable to get Installation ID") } }
JavaScript
const installationId = await firebase.installations().getId(); console.log(installationId);
Dart
String id = await FirebaseInstallations.instance.getId();
เรียกโทเค็นการตรวจสอบสิทธิ์การติดตั้ง
บริการ Firebase สามารถตรวจสอบสิทธิ์การติดตั้ง Firebase ด้วยโทเค็นการตรวจสอบสิทธิ์ ดึงข้อมูลมาจาก FIS เช่น เมื่อออกแบบการทดสอบ A/B สำหรับ Remote Config คุณสามารถตรวจสอบสิทธิ์อุปกรณ์ทดสอบเป้าหมายได้โดยใช้ โทเค็นการตรวจสอบสิทธิ์การติดตั้ง
โทเค็นการตรวจสอบสิทธิ์การติดตั้งเป็นโทเค็นสำหรับผู้ถือที่มีอายุสั้น ในรูปแบบ JSON เว็บโทเค็น (JWT) ที่มีข้อมูลต่อไปนี้สำหรับ การติดตั้ง:
- รหัสการติดตั้ง Firebase
- โปรเจ็กต์ที่เชื่อมโยง (
projectNumber
) - รหัสแอปพลิเคชัน Firebase ที่เชื่อมโยง (
appId
) - วันที่หมดอายุของโทเค็น
ไม่สามารถเพิกถอนโทเค็นการตรวจสอบสิทธิ์การติดตั้งได้ และจะยังคงใช้ได้อยู่จนกว่า วันที่หมดอายุ อายุการใช้งานโทเค็นเริ่มต้นคือ 1 สัปดาห์
ในการเรียกโทเค็นการตรวจสอบสิทธิ์การติดตั้ง:
Swift
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Objective-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin+KTX
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
JavaScript
const installationToken = await firebase.installations() .getToken(/* forceRefresh */ true); console.log(installationToken);
Dart
String token = await FirebaseInstallations.instance.getToken();
ตรวจสอบวงจรการใช้งานรหัสการติดตั้ง Firebase
รหัสการติดตั้ง Firebase รหัสในระหว่างการทำงานปกติของแอป (FID) ไม่จำเป็นต้องมีการตรวจสอบเป็นพิเศษ อย่างไรก็ตาม แอปที่ดึงข้อมูลและใช้ FID อย่างชัดเจนควร เพิ่มตรรกะเพื่อตรวจสอบการลบหรือการหมุนเวียนที่เป็นไปได้ FID ต่อไปนี้คือกรณีที่ ระบบอาจลบหรือหมุนเวียน FID ดังนี้
- การถอนการติดตั้งหรือการติดตั้งแอปอีกครั้ง เช่น เมื่อผู้ใช้ปลายทาง ติดตั้งในอุปกรณ์เครื่องใหม่
- ผู้ใช้ปลายทางจะล้างแคชของแอปหรืออุปกรณ์
- ระบบจะทริกเกอร์การลบ FID ในแบ็กเอนด์เนื่องจากแอป ไม่มีความเคลื่อนไหว (ปัจจุบันเกณฑ์ในกรณีนี้คือ 270 วัน)
เมื่อแอปมีการหมุนเวียนหรือลบ FID ใน กรณีประเภทใดบ้างที่ระบบจะกำหนด FID ใหม่ นอกจากนี้ โทเค็นการตรวจสอบสิทธิ์การติดตั้งที่เชื่อมโยงกับ FID ที่ลบไปแล้วคือ ไม่ว่าจะมีวันครบกำหนดอายุเท่าใด และแทนที่ด้วย โทเค็นการตรวจสอบสิทธิ์การติดตั้ง
แอปต่างๆ จะสามารถตรวจสอบการเปลี่ยนแปลงเหล่านี้และตอบสนองตามนั้นได้
วิธีตรวจสอบการหมุนเวียน FID
Swift
installationIDObserver = NotificationCenter.default.addObserver( forName: .InstallationIDDidChange, object: nil, queue: nil ) { (notification) in // Fetch new Installation ID Task { await self.fetchInstallationToken() } }
Objective-C
__weak __auto_type weakSelf = self; self.installationIDObserver = [[NSNotificationCenter defaultCenter] addObserverForName: FIRInstallationIDDidChangeNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull notification) { // Fetch new Installation ID [weakSelf fetchInstallationsID]; }];
NSNotification ชื่อ NSNotificationName.InstallationIDDidChange
คือ
จะโพสต์ลงใน NSNotificationCenter เริ่มต้นเมื่อใดก็ตามที่
มีการกำหนด FID
Android
ไคลเอ็นต์ Kotlin และ Java ควรเพิ่มตรรกะการลองใหม่เพื่อตอบสนองการเรียกที่ล้มเหลว เพื่อดึงข้อมูล FID ใหม่
JavaScript
เว็บแอปติดตามฮุก onIdChange
ได้
เมื่อใดก็ตามที่มีการสร้าง FID ใหม่ขึ้น การเรียกกลับที่สมัครใช้บริการจะเป็น ทริกเกอร์:
await firebase.installations().onIdChange((newId) => { console.log(newId); // TODO: Handle new installation ID. });
Dart
FirebaseInstallations.instance.onIdChange.listen((token) {
print('FID token: $token');
});
ย้ายข้อมูลจากรหัสอินสแตนซ์ไปยังการติดตั้ง Firebase
ก่อนที่จะมีการเปิดตัวการติดตั้ง Firebase ทาง Firebase ได้ใช้ SDK ของรหัสอินสแตนซ์สำหรับตัวระบุการติดตั้งแอป มีการติดตั้ง Firebase ครั้ง มีข้อได้เปรียบที่สำคัญเหนือกว่ารหัสอินสแตนซ์ในแง่ความน่าเชื่อถือ ประสิทธิภาพ และความปลอดภัย แอป Firebase ที่ต้องใช้ SDK ของรหัสอินสแตนซ์ควรย้ายข้อมูล ถึง Firebase ครั้ง
ขั้นตอนการย้ายข้อมูลจะแตกต่างกันไปตามแอปของคุณ ดังนี้
แอปที่ไม่ได้เรียกใช้ API ของรหัสอินสแตนซ์โดยตรงจะสามารถย้ายข้อมูลได้โดย อัปเดตเวอร์ชัน SDK ของตนเอง แอป Firebase ส่วนใหญ่จัดอยู่ในหมวดหมู่นี้
แอปที่เรียก API ไปยังรหัสอินสแตนซ์อย่างชัดแจ้งต้องอัปเดตเวอร์ชันของ SDK และ เปลี่ยนแปลงโค้ดเพื่อแทนที่รหัสอินสแตนซ์ กับ การติดตั้ง Firebase หรือเทียบเท่า FCM หากแอปของคุณใช้ รหัสอินสแตนซ์เพื่อเรียกโทเค็นการลงทะเบียน FCM หรือใช้อย่างชัดแจ้ง รหัสอินสแตนซ์ที่จะกำหนดเป้าหมายอินสแตนซ์ของแอปหรือเพื่อวัตถุประสงค์อื่น อัปเดตโค้ดของแอปพลิเคชัน
ปัจจุบัน FIS จะเข้ากันได้กับตัวระบุเดิมของรหัสอินสแตนซ์ Firebase การลบ IID เป็นอีกทางเลือกในการส่งคำขอลบข้อมูล Firebase SDK ต่อไปนี้
- iOS 6.14.0 และต่ำกว่า
- Android SDK ก่อนวันที่ 27 กุมภาพันธ์ 2020
ซึ่งหมายความว่าไม่จำเป็นต้องย้ายข้อมูลแอปไปยังการติดตั้ง Firebase แต่เราขอแนะนำให้ทำ
การอัปเกรด SDK เป็นเวอร์ชันขั้นต่ำสำหรับการติดตั้ง Firebase รายการ
หากต้องการย้ายข้อมูลจากรหัสอินสแตนซ์ไปยังการติดตั้ง Firebase โปรดตรวจสอบว่า ใช้หมายเลขเวอร์ชันขั้นต่ำที่ระบุ Firebase SDK ต่อไปนี้
Firebase SDK | เวอร์ชัน Android ขั้นต่ำ | เวอร์ชัน iOS ขั้นต่ำ |
Firebase Cloud Messaging | เวอร์ชัน 20.3.0 | v6.34.0 |
การกำหนดค่าระยะไกล | เวอร์ชัน 19.2.0 | v6.24.0 |
Google Analytics สำหรับ Firebase \ (Measurement SDK) | v17.4.4 | เวอร์ชัน 6.18.0 |
การรับส่งข้อความในแอป | v19.0.7 | v6.24.0 |
การตรวจสอบประสิทธิภาพ | v19.0.8 | v6.21.0 |
Crashlytics | v17.2.1 | เวอร์ชัน 6.23.0 |
ML Kit | v22.1.2 | เวอร์ชัน 6.28.0 |
การอัปเดตโค้ดที่เรียกใช้ API ของรหัสอินสแตนซ์อย่างชัดเจน
หากแอป Android หรือ Apple ใช้เมธอด SDK ของรหัสอินสแตนซ์โดยตรง คุณจะทำสิ่งต่อไปนี้ได้ แทนที่การใช้งานดังกล่าวด้วยตัวเลือกที่เหมือนกันในการติดตั้ง Firebase SDK หรือ SDK FCM
การดึงข้อมูลตัวระบุ
ระบบจะใช้เมธอดในการรับการติดตั้งแทนเมธอดรับรหัสอินสแตนซ์ ID เช่น
ก่อน
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; self.remoteFCMTokenMessage.text = message; } }];
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { Log.d("IID_TOKEN", task.getResult().getToken()); } });
Kotlin+KTX
FirebaseInstanceId.getInstance().instanceId .addOnSuccessListener { result -> Log.d("IID_TOKEN", result.token) }
หลัง
Swift
do { let id = try await Installations.installations().installationID() print("Installation ID: \(id)") } catch { print("Error fetching id: \(error)") }
Objective-C
[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation ID %@", error); return; } NSLog(@"Installation ID: %@", identifier); }];
Java
FirebaseInstallations.getInstance().getId() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation ID: " + task.getResult()); } else { Log.e("Installations", "Unable to get Installation ID"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().id.addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation ID: " + task.result) } else { Log.e("Installations", "Unable to get Installation ID") } }
การลบตัวระบุ
ระบบจะแทนที่เมธอดการลบรหัสอินสแตนซ์ด้วยเมธอดลบ รหัสการติดตั้ง 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();
หลัง
Swift
func delete(completion: @escaping (Error?) -> Void)
Objective-C
- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
กำลังเรียกโทเค็นการลงทะเบียน FCM
ก่อนที่จะเปิดตัวการติดตั้ง Firebase ลูกค้า FCM เรียกดูโทเค็นการลงทะเบียนจากรหัสอินสแตนซ์แล้ว ตอนนี้ SDK ของ FCM ระบุเมธอดในการเรียกโทเค็นการลงทะเบียน
ก่อน
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { if (!task.isSuccessful()) { Log.w(TAG, "getInstanceId failed", task.getException()); return; } // Get new Instance ID token String token = task.getResult().getToken(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin+KTX
FirebaseInstanceId.getInstance().instanceId .addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "getInstanceId failed", task.exception) return@OnCompleteListener } // Get new Instance ID token val token = task.result?.token // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; self.remoteFCMTokenMessage.text = message; } }];
หลัง
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];