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รหัสการติดตั้ง เพื่อเลือกค่าการกำหนดค่าที่จะส่งคืนไปยังอุปกรณ์ของผู้ใช้ปลายทาง Remote Configฟีเจอร์การปรับตามโปรไฟล์ของผู้ใช้ใช้รหัสการติดตั้งFirebaseเพื่อ เชื่อมโยงข้อมูลเหตุการณ์ของแอปกับการติดตั้ง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 สำหรับ Firebase Installations Android SDK ลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle) ดังนี้
implementation 'com.google.firebase:firebase-installations:19.1.2'
JavaScript
การกำหนดค่าอาจได้รับการจัดการโดยอัตโนมัติ หรือคุณอาจต้องอัปเดตออบเจ็กต์การกำหนดค่า Firebase ทั้งนี้ขึ้นอยู่กับวิธีโฮสต์เว็บแอปพลิเคชัน
เช่น หากเพิ่มทรัพยากร Dependency ใน index.html ให้เพิ่ม ทรัพยากร Dependency ในองค์ประกอบ <head> ดังนี้
<script src="/__/firebase/12.19.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รหัสการติดตั้ง เช่น หากต้องการสร้าง กลุ่มการติดตั้งแอปสำหรับการนำเข้า 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
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
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 ที่ขึ้นอยู่กับ Instance ID 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 |
| Performance Monitoring | 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 ของคุณใช้วิธีการของ Instance ID SDK โดยตรง คุณสามารถ แทนที่การใช้งานดังกล่าวด้วยทางเลือกที่เหมือนกันใน SDK Firebase installations หรือ 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 Installations 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); } }];