توفّر خدمة عمليات التثبيت في "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 إلى تطبيقك.
أضِف حزمة تطوير البرامج (SDK) الخاصة بعمليات تثبيت "Firebase" إلى تطبيقك.
iOS+
- أضِف التبعية لعمليات تثبيت Firebase إلى Podfile:
pod 'FirebaseInstallations'
- شغِّل تطبيق "
pod install
" وافتح ملف ".xcworkspace
" الذي تم إنشاؤه. - استيراد وحدة
FirebaseCore
فيUIApplicationDelegate
بالإضافة إلى أي تطبيق آخر وحدات Firebase التي يستخدمها تطبيقك المفوَّض على سبيل المثال، لاستخدام Cloud Firestore وAuthentication:واجهة المستخدم
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:)
:واجهة المستخدم
// 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
ويجب أيضًا إيقاف إيماءة تفويض التطبيق. بالنسبة لمزيد من المعلومات، يُرجى الاطّلاع على تعليمات SwiftUI.واجهة المستخدم
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Android
أضِف التبعية لحزمة تطوير البرامج (SDK) الخاصة بعمليات تثبيت "Firebase" إلى
ملف Gradle (على مستوى التطبيق) (عادةً app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:18.0.0'
JavaScript
استنادًا إلى كيفية استضافة تطبيق الويب، قد تكون الإعدادات يتم التعامل معها تلقائيًا أو قد تحتاج إلى تحديث كائن إعداد Firebase.
على سبيل المثال، إذا تمت إضافة تبعياتك في 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 معرّفًا جديدًا في غضون بضعة أيام. الإعداد عن بُعد رقم التعريف الذي تم إنشاؤه حديثًا هو عملية تثبيت Firebase جديدة. لا يربطه بالمعرّف السابق أو البيانات السابقة بأي شكل من الأشكال.
حذف مهلة الاستجابة الأولى من خلال طلب بيانات من واجهة برمجة تطبيقات العميل
لحذف معرّفات 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 باستخدام واجهة برمجة تطبيقات الخادم عليك إضافة حزمة تطوير البرامج (SDK) لمشرف Firebase إلى خادمك، إذا لم يسبق لك إجراء ذلك.
بعد إضافة حزمة تطوير البرامج (SDK)، احذف معرّفات FID من خلال استدعاء باللغة التي اخترتها (ملاحظة: باستثناء Node.js، تكون هذه تعكس طرق مختلفة تسمية معرف المثيل. ومع ذلك، فإنهم جميعًا يحذفون مقياس FID عند طلبه باستخدام أيّ حزمة تطوير برامج (SDK) حالية لمنصّة Firebase).
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)
انتقال
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" باستخدام طلب بيانات من واجهة برمجة التطبيقات للخادم، Firebase تبدأ الخدمات عملية لحذف البيانات المرتبطة بمعرف التثبيت هذا، قبول بيانات جديدة لهذا المعرّف خلال مدة تتراوح بين يوم ويومين، ثم إبلاغ العميل الذي تم حذف المعرّف. إلى أن يرسل Firebase إشعارًا إلى تطبيق العميل، قد من خدمات التطبيق قد تستمر في استهداف رقم التعريف، مثل Firebase قد يستمر التثبيت في تلقّي إشعارات FCM لبضعة ساعة.
إذا أردت حذف معرّف تثبيت Firebase الحالي واستخدام الإعداد على الفور استخدام واجهة برمجة تطبيقات العميل في خدمات Firebase التي تتضمن معرّفًا جديدًا وغير ذي صلة لمعالجة الحذف.
استرداد معرّفات العملاء
وإذا كانت لديك متطلَّبات لتحديد عمليات تثبيت معيَّنة لتطبيقك، عليك إجراء ذلك من خلال استرداد معرّف تثبيت 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
) - تاريخ انتهاء صلاحية الرمز المميّز
لا يمكن إبطال رمز مصادقة للتثبيت، ويظل صالحًا حتى وتاريخ انتهاء صلاحيتها. المدة التلقائية للرمز المميّز هي أسبوع واحد.
لاسترداد رمز مصادقة التثبيت:
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 على حزمة تطوير البرامج لمعرّف المثيل لمعرّفات عمليات تثبيت التطبيق عمليتا تثبيت (Firebase) توفر مزايا مهمة تتفوق على معرّف المثيل في الموثوقية والأداء والأمان. يجب نقل بيانات تطبيقات Firebase التي تعتمد على حزمة تطوير البرامج لمعرّف المثيل إلى Firebase عملية تثبيت.
تختلف عملية نقل البيانات حسب تطبيقك:
يمكن نقل البيانات من خلال التطبيقات التي لا تطلب مباشرةً واجهات برمجة التطبيقات لمعرّف المثيل من خلال تحديث إصدارات حزمة تطوير البرامج (SDK) الخاصة بهم تندرج معظم تطبيقات Firebase ضمن هذه الفئة.
التطبيقات التي تُجري طلبات بيانات من واجهة برمجة التطبيقات بشكل صريح إلى رقم تعريف المثيل يجب أن تعدِّل إصدارات حزمة تطوير البرامج (SDK) و إجراء تغييرات على الرمز لاستبدال معرّف المثيل الطرق مع Firebase من عمليات التثبيت أو FCM مكافئة. إذا كان تطبيقك يستخدم رقم تعريف المثيل لاسترداد FCM رموز تسجيل مميّزة أو استخدامات صريحة رقم تعريف المثيل لاستهداف مثيلات التطبيق أو لأي غرض آخر، يجب: تحديث رمز التطبيق.
حاليًا، FIS متوافقًا مع الأنظمة القديمة مع معرّف مثيل Firebase الذي يحمل المعرّف القديم. حذف معرّف IID هي طريقة بديلة لطلب حذف البيانات مع حِزم تطوير البرامج (SDK) التالية لمنصّة Firebase:
- iOS 6.14.0 والإصدارات الأقدم
- حِزم تطوير البرامج (SDK) لنظام التشغيل Android قبل 27 شباط (فبراير) 2020
وهذا يعني أنّ التطبيقات ليست مطلوبة لنقل بياناتها إلى عمليات تثبيت Firebase. ومع ذلك، يوصى بشدة بالقيام بذلك.
الترقية إلى الحد الأدنى من إصدارات حزمة تطوير البرامج (SDK) لعدد Firebase عملية تثبيت
لنقل البيانات من رقم تعريف المثيل إلى عمليات تثبيت Firebase، تأكَّد من التطبيقات تستخدم على الأقل الحد الأدنى من أرقام إصدارات نظام التشغيل حِزم تطوير البرامج (SDK) التالية لمنصّة Firebase:
حزمة تطوير البرامج (SDK) لمنصة Firebase | الحد الأدنى لإصدار Android | الحد الأدنى لإصدار iOS |
المراسلة عبر السحابة الإلكترونية من Firebase | الإصدار 20.3.0 | الإصدار 6.34.0 |
الإعداد عن بُعد | الإصدار 19.2.0 | الإصدار 6.24.0 |
إحصاءات Google لبرنامج 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 |
تعديل الرمز البرمجي الذي يستدعي صراحةً واجهات برمجة تطبيقات معرّف المثيل
إذا كان تطبيقك على Android أو Apple يستخدم مباشرةً طرق حزمة تطوير البرامج (SDK) لمعرّف المثيل، يمكنك: استبدال هذا الاستخدام ببدائل مماثلة في Firebase من عمليات التثبيت حزمة تطوير البرامج (SDK) أو حزمة تطوير البرامج (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)") 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; } }];