บริการการติดตั้ง Firebase (FIS) จะให้Firebaseรหัสการติดตั้ง (FID) สำหรับอินสแตนซ์ที่ติดตั้งแต่ละรายการของแอป 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 ลงในแอป
เพิ่ม FirebaseSDK การติดตั้งลงในแอป
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นอกจากนี้ คุณยังต้องปิดใช้การสลับแทนของตัวแทนแอปด้วย ดูข้อมูลเพิ่มเติมได้ที่วิธีการสำหรับ 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 สำหรับ FirebaseAndroid SDK ของการติดตั้งลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle)
implementation 'com.google.firebase:firebase-installations:19.1.0'
JavaScript
การกำหนดค่าอาจได้รับการจัดการโดยอัตโนมัติ หรือคุณอาจต้องอัปเดตออบเจ็กต์การกำหนดค่า Firebase ทั้งนี้ขึ้นอยู่กับวิธีโฮสต์เว็บแอปพลิเคชัน
เช่น หากเพิ่มการอ้างอิงใน index.html ให้เพิ่มการอ้างอิงในองค์ประกอบ <head> ดังนี้
<script src="/__/firebase/12.12.0/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 วัน กระบวนการนี้อธิบายไว้ในระดับสูงในคำชี้แจงเกี่ยวกับการลบและการเก็บรักษาของ Google
FIS จะสร้างรหัสใหม่ภายใน 2-3 วัน เว้นแต่คุณจะปิดใช้บริการที่สร้าง FID ทั้งหมดในแอป Firebase ถือว่ารหัสที่สร้างขึ้นใหม่เป็นการFirebaseติดตั้งใหม่ และจะไม่เชื่อมโยงรหัสนี้กับรหัสหรือข้อมูลก่อนหน้าในทุกกรณี
ลบ FID ด้วยการเรียก API ของไคลเอ็นต์
หากต้องการลบ FID ที่บริการของ Firebase สร้างขึ้น ให้เรียกใช้เมธอดที่เหมาะสมจาก FirebaseSDK การติดตั้ง
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
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 ทันทีด้วยรหัสใหม่ที่ไม่เกี่ยวข้อง ให้ใช้ Client API เพื่อจัดการการลบ
ดึงข้อมูลตัวระบุไคลเอ็นต์
หากคุณมีข้อกำหนดในการระบุการติดตั้งแอปที่เฉพาะเจาะจง คุณสามารถทำได้โดยการเรียกข้อมูลFirebaseรหัสการติดตั้ง ตัวอย่างเช่น หากต้องการสร้างกลุ่มการติดตั้งแอปสำหรับการนำเข้า BigQuery หรือทำการทดสอบระหว่าง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
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 คุณสามารถตรวจสอบสิทธิ์อุปกรณ์ทดสอบเป้าหมายได้โดยใช้ โทเค็นการตรวจสอบสิทธิ์การติดตั้ง
โทเค็นการให้สิทธิ์การติดตั้งเป็นโทเค็น Bearer ที่มีอายุสั้น ในรูปแบบโทเค็นเว็บ 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
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
เว็บแอปสามารถสมัครใช้ Hook ของ 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การติดตั้ง
กระบวนการย้ายข้อมูลจะแตกต่างกันไปตามแอปของคุณ ดังนี้
แอปที่ไม่ได้เรียกใช้ Instance ID 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 | v20.3.0 | v6.34.0 |
| การกำหนดค่าระยะไกล | v19.2.0 | v6.24.0 |
| Google Analytics สำหรับ Firebase \ (SDK การวัดผล) | v17.4.4 | v6.18.0 |
| การรับส่งข้อความในแอป | v19.0.7 | v6.24.0 |
| การตรวจสอบประสิทธิภาพ | v19.0.8 | v6.21.0 |
| Crashlytics | v17.2.1 | v6.23.0 |
| ML Kit | v22.1.2 | v6.28.0 |
การอัปเดตโค้ดที่เรียกใช้ Instance ID API อย่างชัดเจน
หากแอป Android หรือ Apple ของคุณใช้วิธีการของ SDK รหัสอินสแตนซ์โดยตรง คุณสามารถ แทนที่การใช้งานนั้นด้วยทางเลือกที่เหมือนกันใน SDK การติดตั้งใช้งาน Firebase หรือ SDK FCM
การดึงข้อมูลตัวระบุ
ระบบจะแทนที่วิธีการรับรหัสอินสแตนซ์ด้วยวิธีการรับรหัสการติดตั้ง เช่น
ก่อน
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)") } }
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]; // display message NSLog(@"%@", 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
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
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
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
การดึงโทเค็นการลงทะเบียน FCM
ก่อนที่จะมีการเปิดตัวการติดตั้ง Firebase FCMไคลเอ็นต์ จะดึงโทเค็นการลงทะเบียนจากรหัสอินสแตนซ์ ตอนนี้ FCM SDK มีวิธีการดึงโทเค็นการลงทะเบียนแล้ว
ก่อน
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
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
InstanceID.instanceID().instanceID { result, error in if let error = error { print("Error fetching instance ID: \(error)") } else if let result = result { print("Instance ID token: \(result.token)") } }
Objective-C
[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching instance ID: %@", error); } else { NSLog(@"Instance ID token: %@", result.token); } }];
หลัง
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
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 remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID 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]; // display message NSLog(@"%@", message); } }];