บริการติดตั้ง Firebase (FIS) จะให้รหัสการติดตั้ง Firebase (FID) สำหรับอินสแตนซ์ที่ติดตั้งแต่ละรายการของแอป Firebase บริการ Firebase ต่อไปนี้จะใช้รหัสการติดตั้ง Firebase เป็นการภายใน
| บริการ Firebase | ฟังก์ชันการติดตั้ง Firebase |
|---|---|
| Firebase Cloud Messaging |
Firebase Cloud Messaging ใช้รหัสการติดตั้ง Firebase เพื่อกำหนดเป้าหมายอุปกรณ์สำหรับการนำส่งข้อความ |
| Firebase Crashlytics |
Firebase Crashlytics จะหมุนเวียน UUID การติดตั้ง Crashlytics ตามการเปลี่ยนแปลงรหัสการติดตั้ง 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 ลงในแอป
เพิ่ม SDK การติดตั้ง Firebase ลงในแอป
iOS+
- เพิ่มทรัพยากร Dependency สำหรับการติดตั้ง Firebase ลงใน Podfile ดังนี้
pod 'FirebaseInstallations'
- เรียกใช้
pod installและเปิดไฟล์.xcworkspaceที่สร้างขึ้น - นำเข้าโมดูล
FirebaseCoreในUIApplicationDelegateรวมถึงโมดูล Firebase อื่นๆ ที่ App Delegate ของคุณใช้ ตัวอย่างเช่น หากต้องการใช้ 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:)ของ App Delegate ดังนี้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 สำหรับ Android SDK ของการติดตั้ง Firebase ลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle)
implementation 'com.google.firebase:firebase-installations:20.0.0'
JavaScript
การกำหนดค่าอาจได้รับการจัดการโดยอัตโนมัติหรือคุณอาจต้องอัปเดตออบเจ็กต์การกำหนดค่า Firebase ทั้งนี้ขึ้นอยู่กับวิธีโฮสต์เว็บแอปพลิเคชัน
เช่น หากเพิ่มทรัพยากร Dependency ใน index.html ให้เพิ่มทรัพยากร Dependency ในองค์ประกอบ <head> ดังนี้
<script src="/__/firebase/13.0.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 ให้เรียกใช้เมธอดที่เหมาะสมจาก 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
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 ตัวอย่างเช่น หากต้องการสร้างกลุ่มการติดตั้งแอปสำหรับการนำเข้า 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 คุณสามารถตรวจสอบสิทธิ์อุปกรณ์ทดสอบเป้าหมายโดยใช้โทเค็นการตรวจสอบสิทธิ์การติดตั้ง
โทเค็นการตรวจสอบสิทธิ์การติดตั้งคือโทเค็นสำหรับผู้ถือที่มีอายุสั้นในรูปแบบโทเค็นเว็บ 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
เว็บแอปสามารถสมัครรับข้อมูลจากฮุก onIdChange ได้
เมื่อใดก็ตามที่มีการสร้าง FID ใหม่ ระบบจะเรียกใช้ Callback ที่สมัครไว้
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 หรือ 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 จะดึงโทเค็นการลงทะเบียนจากรหัสอินสแตนซ์ ตอนนี้ 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
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); } }];