บริการติดตั้ง Firebase (FIS) มอบรหัสการติดตั้ง Firebase (FID) ให้กับแต่ละอินสแตนซ์ที่ติดตั้งของแอป Firebase รหัสการติดตั้ง Firebase ถูกใช้ภายในโดยบริการ Firebase เหล่านี้:
บริการฐานไฟ | ฟังก์ชั่นการติดตั้ง Firebase |
---|---|
การส่งข้อความบนคลาวด์ของ Firebase | Firebase Cloud Messaging ใช้รหัสการติดตั้ง Firebase เพื่อกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ |
Firebase Crashlytics | Firebase Crashlytics จะหมุนเวียน UUID การติดตั้ง Crashlytics ตามการเปลี่ยนแปลงรหัสการติดตั้ง Firebase ของอินสแตนซ์แอป ในอนาคต รหัสการติดตั้งอาจใช้เพื่อเปิดใช้งานฟีเจอร์ที่ปรับปรุงการรายงานข้อขัดข้องและบริการการจัดการข้อขัดข้อง |
การส่งข้อความในแอป Firebase | การส่งข้อความในแอป Firebase ใช้รหัสการติดตั้ง Firebase เพื่อกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ |
การตรวจสอบประสิทธิภาพ Firebase | การตรวจสอบประสิทธิภาพใช้รหัสการติดตั้ง Firebase เพื่อคำนวณจำนวนการติดตั้ง Firebase ที่ไม่ซ้ำกันซึ่งเข้าถึงทรัพยากรเครือข่าย เพื่อให้แน่ใจว่ารูปแบบการเข้าถึงเป็นแบบนิรนามเพียงพอ นอกจากนี้ยังใช้รหัสการติดตั้ง Firebase พร้อมการกำหนดค่าระยะไกลของ Firebase เพื่อจัดการอัตราการรายงานเหตุการณ์ประสิทธิภาพ |
การกำหนดค่าระยะไกลของ Firebase | การกำหนดค่าระยะไกลใช้รหัสการติดตั้ง Firebase เพื่อเลือกค่าการกำหนดค่าเพื่อกลับไปยังอุปกรณ์ของผู้ใช้ปลายทาง |
Firebase ML | ข้อมูลรับรองที่เรียกว่า โทเค็นการตรวจสอบสิทธิ์การติดตั้ง จะถูกใช้โดย Firebase ML สำหรับการตรวจสอบสิทธิ์อุปกรณ์เมื่อโต้ตอบกับอินสแตนซ์ของแอป เช่น เพื่อกระจายโมเดลของนักพัฒนาไปยังอินสแตนซ์ของแอป |
พื้นที่เก็บข้อมูลการแบ่งกลุ่มผู้ใช้ Firebase | พื้นที่เก็บข้อมูลการแบ่งกลุ่มผู้ใช้ Firebase จะจัดเก็บรหัสการติดตั้ง Firebase รวมถึงแอตทริบิวต์และเซ็กเมนต์ที่เกี่ยวข้องเพื่อมอบข้อมูลการกำหนดเป้าหมายให้กับบริการ Firebase อื่นๆ ที่ใช้งาน |
โดยทั่วไป บริการ Firebase จะใช้บริการติดตั้ง Firebase โดยไม่ต้องให้นักพัฒนาโต้ตอบกับ FIS API โดยตรง อย่างไรก็ตาม มีกรณีที่นักพัฒนาแอปอาจต้องการเรียกใช้ FIS API โดยตรง เช่น:
- หากต้องการลบการติดตั้ง Firebase และข้อมูลที่เชื่อมโยงกับการติดตั้ง
- เพื่อดึงข้อมูลตัวระบุ (รหัสการติดตั้ง Firebase) เพื่อกำหนดเป้าหมายการติดตั้งแอปเฉพาะ
- เพื่อดึงโทเค็นการตรวจสอบสิทธิ์การติดตั้งเพื่อตรวจสอบสิทธิ์การติดตั้ง Firebase
หากต้องการเริ่มต้นการเรียก FIS API โดยตรง ให้เพิ่ม SDK ลงในแอปของคุณ
เพิ่ม SDK การติดตั้ง Firebase ลงในแอปของคุณ
ไอโอเอส+
- เพิ่มการพึ่งพาสำหรับการติดตั้ง Firebase ให้กับ Podfile ของคุณ:
pod 'FirebaseInstallations'
- เรียกใช้
pod install
และเปิดไฟล์.xcworkspace
ที่สร้างขึ้น - นำเข้าโมดูล
FirebaseCore
ในUIApplicationDelegate
ของคุณ รวมถึง โมดูล Firebase อื่นๆ ที่แอปของคุณมอบหมายใช้ ตัวอย่างเช่น หากต้องการใช้ Cloud Firestore และการตรวจสอบสิทธิ์ ให้ทำดังนี้SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
สวิฟท์
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
วัตถุประสงค์-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ
FirebaseApp
ในapplication(_:didFinishLaunchingWithOptions:)
ของผู้รับมอบสิทธิ์แอปของคุณ:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
สวิฟท์
// Use Firebase library to configure APIs FirebaseApp.configure()
วัตถุประสงค์-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() } } } }
หุ่นยนต์
เพิ่มการพึ่งพาสำหรับการติดตั้ง Firebase Android SDK ให้กับไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:17.1.4'
จาวาสคริปต์
ขึ้นอยู่กับวิธีการโฮสต์เว็บแอปพลิเคชันของคุณ การกำหนดค่าของคุณอาจได้รับการจัดการโดยอัตโนมัติหรือคุณอาจต้องอัปเดตอ อบเจ็กต์การกำหนดค่า Firebase ของคุณ
ตัวอย่างเช่น หากมีการเพิ่มการขึ้นต่อกันของคุณใน index.html ให้เพิ่มการขึ้นต่อกันในองค์ประกอบ <head>:
<script src="/__/firebase/10.4.0/firebase-installations.js"></script>
กระพือปีก
จากไดเร็กทอรีรากของโปรเจ็กต์ 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 จะสร้าง ID ใหม่ภายในไม่กี่วัน เว้นแต่คุณจะปิดใช้งานบริการที่สร้าง FID ทั้งหมดในแอปของคุณ Firebase จะถือว่ารหัสที่สร้างขึ้นใหม่เป็นการติดตั้ง Firebase ใหม่ และไม่เชื่อมโยงกับรหัสหรือข้อมูลก่อนหน้าแต่อย่างใด
ลบ FID ด้วยการเรียก API ของไคลเอ็นต์
หากต้องการลบ FID ที่สร้างโดยบริการ Firebase ให้เรียกใช้วิธีการที่เหมาะสมจาก SDK การติดตั้ง Firebase:
สวิฟท์
Installations.installations().delete { error in if let error = error { print("Error deleting installation: \(error)") return } print("Installation deleted"); }
วัตถุประสงค์-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") } }
จาวาสคริปต์
await firebase.installations().delete();
Dart
await FirebaseInstallations.instance.delete();
ลบ FID ด้วยการเรียก API ของเซิร์ฟเวอร์
หากต้องการลบ FID ด้วยการเรียก API ของเซิร์ฟเวอร์ ให้เพิ่ม Firebase Admin SDK ลงในเซิร์ฟเวอร์ของคุณ หากคุณยังไม่ได้ดำเนินการ
เมื่อเพิ่ม SDK แล้ว ให้ลบ FID ผ่านการเรียกไปยังฟังก์ชันการลบในภาษาที่คุณเลือก (หมายเหตุ: ยกเว้น Node.js เมธอดเหล่านี้สะท้อนถึงการตั้งชื่อ Instance ID อย่างไรก็ตาม วิธีการเหล่านี้ทั้งหมดจะลบ FID เมื่อเรียกใช้ด้วย Firebase ปัจจุบันใดๆ SDK)
โหนด 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();
หลาม
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)
ไป
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 ต่อไปอีกสองสามชั่วโมง
หากคุณต้องการลบรหัสการติดตั้ง Firebase ปัจจุบัน และใช้บริการ Firebase ด้วยรหัสใหม่ที่ไม่เกี่ยวข้องทันที ให้ใช้ API ไคลเอ็นต์เพื่อจัดการกับการลบ
ดึงข้อมูลตัวระบุไคลเอ็นต์
หากคุณมีข้อกำหนดในการระบุการติดตั้งแอปของคุณโดยเฉพาะ คุณสามารถทำได้โดยการดึงรหัสการติดตั้ง Firebase ตัวอย่างเช่น หากต้องการสร้างกลุ่มการติดตั้งแอปสำหรับการนำเข้า BiqQuery หรือทำการทดสอบระหว่างการพัฒนา Firebase In-App Messaging คุณสามารถระบุและกำหนดเป้าหมายอุปกรณ์ที่ถูกต้องโดยใช้รหัสการติดตั้ง Firebase ที่เกี่ยวข้อง
หากต้องการดึงรหัสการติดตั้ง Firebase:
สวิฟท์
Installations.installations().installationID { (id, error) in if let error = error { print("Error fetching id: \(error)") return } guard let id = id else { return } print("Installation ID: \(id)") }
วัตถุประสงค์-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") } }
จาวาสคริปต์
const installationId = await firebase.installations().getId(); console.log(installationId);
Dart
String id = await FirebaseInstallations.instance.getId();
ดึงข้อมูลโทเค็นการตรวจสอบสิทธิ์การติดตั้ง
บริการ Firebase สามารถตรวจสอบการติดตั้ง Firebase ด้วยโทเค็นการตรวจสอบสิทธิ์ที่ดึงมาจาก FIS ตัวอย่างเช่น เมื่อออกแบบการทดสอบ A/B สำหรับการกำหนดค่าระยะไกล คุณสามารถตรวจสอบความถูกต้องของอุปกรณ์ทดสอบเป้าหมายได้โดยใช้โทเค็นการตรวจสอบสิทธิ์การติดตั้ง
โทเค็นการตรวจสอบสิทธิ์การติดตั้งคือโทเค็นผู้ถือที่มีอายุสั้นในรูปแบบ JSON web token (JWT) ซึ่งมีข้อมูลต่อไปนี้สำหรับการติดตั้ง:
- รหัสการติดตั้ง Firebase
- โครงการที่เกี่ยวข้อง (
projectNumber
) - รหัสแอปพลิเคชัน Firebase ที่เกี่ยวข้อง (
appId
) - วันหมดอายุของโทเค็น
โทเค็นการตรวจสอบสิทธิ์การติดตั้งไม่สามารถเพิกถอนได้ และยังคงใช้ได้จนถึงวันหมดอายุ อายุการใช้งานโทเค็นเริ่มต้นคือหนึ่งสัปดาห์
หากต้องการดึงข้อมูลโทเค็นการตรวจสอบสิทธิ์การติดตั้ง:
สวิฟท์
Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in if let error = error { print("Error fetching token: \(error)") return } guard let result = result else { return } print("Installation auth token: \(result.authToken)") })
วัตถุประสงค์-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") } }
จาวาสคริปต์
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:
สวิฟท์
installationIDObserver = NotificationCenter.default.addObserver( forName: .InstallationIDDidChange, object: nil, queue: nil ) { (notification) in // Fetch new Installation ID self.fetchInstallationToken() }
วัตถุประสงค์-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 ใหม่
หุ่นยนต์
ไคลเอนต์ Kotlin และ Java ควรเพิ่มตรรกะการลองใหม่เพื่อตอบสนองต่อการโทรที่ล้มเหลวเพื่อดึงข้อมูล FID ใหม่
จาวาสคริปต์
เว็บแอปสามารถสมัครรับ onIdChange
hook ได้
เมื่อใดก็ตามที่มีการสร้าง 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 อาศัย Instance ID SDK สำหรับตัวระบุการติดตั้งแอป การติดตั้ง Firebase ให้ข้อได้เปรียบที่เหนือกว่า Instance ID ในด้านความน่าเชื่อถือ ประสิทธิภาพ และความปลอดภัย แอป Firebase ที่ต้องใช้ Instance ID SDK ควรย้ายไปยังการติดตั้ง Firebase
กระบวนการย้ายข้อมูลจะแตกต่างกันไปตามแอปของคุณ:
แอปที่ไม่ได้เรียก API ของรหัสอินสแตนซ์โดยตรงสามารถย้ายข้อมูลได้โดย อัปเดตเวอร์ชัน SDK แอป Firebase ส่วนใหญ่จัดอยู่ในหมวดหมู่นี้
แอปที่ทำการเรียก API ไปยัง Instance ID อย่างชัดเจนจะต้องอัปเดตเวอร์ชัน SDK และ ทำการเปลี่ยนแปลงโค้ด เพื่อแทนที่วิธี Instance ID ด้วยการติดตั้ง Firebase หรือ FCM ที่เทียบเท่า หากแอปของคุณใช้รหัสอินสแตนซ์เพื่อดึงโทเค็นการลงทะเบียน FCM หรือใช้รหัสอินสแตนซ์อย่างชัดเจนเพื่อกำหนดเป้าหมายอินสแตนซ์ของแอปหรือเพื่อวัตถุประสงค์อื่นใด คุณจะต้องอัปเดตรหัสแอปพลิเคชันของคุณ
ปัจจุบัน FIS สามารถใช้งานร่วมกับ Firebase Instance ID ตัวระบุเดิมได้ การลบ IID เป็นอีกวิธีหนึ่งในการขอลบข้อมูลด้วย Firebase SDK เหล่านี้:
- iOS 6.14.0 และต่ำกว่า
- Android SDK ก่อนวันที่ 27 กุมภาพันธ์ 2020
ซึ่งหมายความว่าแอปไม่ จำเป็น ต้องย้ายไปยังการติดตั้ง Firebase อย่างไรก็ตาม ขอแนะนำให้ทำเช่นนั้น
การอัปเกรดเป็นเวอร์ชัน SDK ขั้นต่ำสำหรับการติดตั้ง Firebase
หากต้องการย้ายจากการติดตั้งรหัสอินสแตนซ์ไปยังการติดตั้ง Firebase ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณใช้หมายเลขเวอร์ชันขั้นต่ำที่ระบุไว้ของ Firebase SDK ต่อไปนี้เป็นอย่างน้อย:
Firebase SDK | เวอร์ชัน Android ขั้นต่ำ | เวอร์ชัน iOS ขั้นต่ำ |
การส่งข้อความบนคลาวด์ของ Firebase | เวอร์ชัน 20.3.0 | เวอร์ชัน 6.34.0 |
การกำหนดค่าระยะไกล | เวอร์ชัน 19.2.0 | เวอร์ชัน 6.24.0 |
Google Analytics สำหรับ Firebase \ (SDK การวัด) | เวอร์ชัน 17.4.4 | เวอร์ชัน 6.18.0 |
การส่งข้อความในแอป | เวอร์ชัน 19.0.7 | เวอร์ชัน 6.24.0 |
การตรวจสอบประสิทธิภาพ | เวอร์ชัน 19.0.8 | เวอร์ชัน 6.21.0 |
Crashlytics | เวอร์ชัน 17.2.1 | เวอร์ชัน 6.23.0 |
เอ็มแอล คิท | เวอร์ชัน 22.1.2 | เวอร์ชัน 6.28.0 |
การอัปเดตโค้ดที่เรียก Instance ID API อย่างชัดเจน
หากแอป Android หรือ Apple ของคุณใช้วิธี Instance ID SDK โดยตรง คุณสามารถแทนที่การใช้งานนั้นด้วยวิธีอื่นที่เหมือนกันใน SDK การติดตั้ง Firebase หรือ FCM SDK
กำลังดึงข้อมูลตัวระบุ
วิธีการรับ ID อินสแตนซ์จะถูกแทนที่ด้วยวิธีการรับ ID การติดตั้ง ตัวอย่างเช่น:
ก่อน
สวิฟท์
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)" } }
วัตถุประสงค์-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) }
หลังจาก
สวิฟท์
Installations.installations().installationID { (id, error) in if let error = error { print("Error fetching id: \(error)") return } guard let id = id else { return } print("Installation ID: \(id)") }
วัตถุประสงค์-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 ตัวอย่างเช่น:
ก่อน
สวิฟท์
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
วัตถุประสงค์-C
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
หุ่นยนต์
FirebaseInstanceId.deleteInstanceId();
หลังจาก
สวิฟท์
func delete(completion: @escaping (Error?) -> Void)
วัตถุประสงค์-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 จะดึงข้อมูลโทเค็นการลงทะเบียนจากรหัสอินสแตนซ์ ขณะนี้ 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+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() })
สวิฟท์
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)" } }
วัตถุประสงค์-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() })
สวิฟท์
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)" } }
วัตถุประสงค์-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; } }];