توفِّر خدمة عمليات تثبيت Firebase (FIS) معرّف تثبيت Firebase (FID) لكل نسخة افتراضية مثبَّتة من تطبيق Firebase. وتستخدم خدمات Firebase التالية رقم تعريف تثبيت Firebase داخليًا:
خدمة Firebase | وظائف عمليات التثبيت من Firebase |
---|---|
المراسلة عبر السحابة الإلكترونية من Firebase |
تستخدم خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" معرّفات التثبيت من Firebase لاستهداف الأجهزة لتسليم الرسائل. |
Firebase Crashlytics |
يعمل Firebase Crashlytics على تبديل المعرّف الفريد الفريد العالمي لتثبيت Crashlytics استنادًا إلى التغييرات المُدخلة على معرّف تثبيت Firebase لمثيل التطبيق. وفي المستقبل، قد يتم استخدام معرّف التثبيت لتفعيل الميزات التي تعمل على تحسين خدمات الإبلاغ عن الأعطال وإدارة الأعطال. |
المراسلة داخل تطبيق Firebase |
تستخدم ميزة "المراسلة داخل التطبيق من Firebase" معرّفات تثبيت Firebase لاستهداف الأجهزة بهدف تسليم الرسائل. |
مراقبة أداء Firebase |
تستخدم ميزة "مراقبة الأداء" أرقام تعريف تثبيت Firebase لاحتساب عدد عمليات التثبيت الفريدة لمنصة Firebase التي يمكنها الوصول إلى موارد الشبكة، لضمان أن تكون أنماط الوصول مخفية الهوية بشكل كافٍ. وتستخدم أيضًا أرقام تعريف التثبيت في Firebase مع ميزة "الإعداد عن بُعد في Firebase" لإدارة معدّل إعداد تقارير أحداث الأداء. |
الإعداد عن بُعد في Firebase |
تستخدم ميزة "الإعداد عن بُعد" أرقام تعريف التثبيت من Firebase لاختيار قيم الإعدادات من أجل الرجوع إلى أجهزة المستخدمين النهائيين. |
Firebase ML |
تُستخدم بيانات الاعتماد التي تُسمّى الرموز المميّزة للمصادقة الخاصة بالتثبيت من خلال تقنية تعلُّم الآلة في Firebase لمصادقة الجهاز عند التفاعل مع التطبيقات الافتراضية، لتوزيع نماذج المطوّرين على مثيلات التطبيق. |
مساحة تخزين تصنيف المستخدمين في 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 والمصادقة:واجهة المستخدم
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.12.2/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 معرّفًا جديدًا في غضون بضعة أيام، ما لم يتم إيقاف جميع خدمات إنشاء معرّف FID في تطبيقك. ويَعتبر Firebase رقم التعريف الذي تم إنشاؤه حديثًا عملية تثبيت جديدة في 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)
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 مع طلب بيانات من واجهة برمجة تطبيقات الخادم، تبدأ خدمات Firebase عملية حذف البيانات المرتبطة برقم تعريف التثبيت هذا، وتتوقّف عن قبول البيانات الجديدة لهذا المعرّف على مدار يوم أو يومَين، ثم تُبلِغ تطبيق العميل بحذف رقم التعريف. وحتى يتم إرسال إشعار من Firebase إلى تطبيق العميل، قد تستمر بعض خدمات التطبيق في استهداف رقم التعريف، على سبيل المثال، قد يستمر تثبيت Firebase في تلقِّي إشعارات ميزة "المراسلة عبر السحابة الإلكترونية من Firebase" لبضع ساعات.
إذا أردت حذف معرّف تثبيت Firebase الحالي واستخدام خدمات Firebase على الفور مع معرّف جديد غير ذي صلة، استخدِم واجهة برمجة تطبيقات العميل لمعالجة عملية الحذف.
استرداد معرّفات العملاء
إذا كانت لديك مطلب لتحديد عمليات تثبيت معيّنة لتطبيقك، يمكنك إجراء ذلك من خلال استرداد معرّف تثبيت Firebase. على سبيل المثال، لإنشاء شرائح من عمليات تثبيت التطبيق لاستيراد BiqQuery، أو لإجراء اختبار أثناء تطوير "المراسلة داخل التطبيق على Firebase"، يمكنك تحديد الأجهزة الصحيحة واستهدافها باستخدام معرّفات تثبيت 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 لميزة "الإعداد عن بُعد"، يمكنك مصادقة جهاز اختباري مستهدَف باستخدام رمز مميّز لمصادقة التثبيت.
رمز مصادقة التثبيت هو رمز مميّز قصير الأجل للحامل بتنسيق رمز 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 ضمن هذه الفئة.
على التطبيقات التي تُجري طلبات بيانات من واجهة برمجة التطبيقات بشكل صريح إلى Instance ID تحديث إصدارات حزمة SDK و إجراء تغييرات على الرموز لاستبدال طُرق أرقام تعريف المثيل بعمليات تثبيت Firebase أو نظيراتها في "المراسلة عبر السحابة الإلكترونية من Firebase". إذا كان تطبيقك يستخدم رقم تعريف المثيل لاسترداد الرموز المميّزة للتسجيل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" أو كان يستخدم رقم تعريف المثيل لاستهداف مثيلات التطبيق أو لأي غرض آخر، يجب تعديل رمز التطبيق.
في الوقت الحالي، تتوافق 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 يستخدم مباشرةً طرق Instance ID SDK، يمكنك استبدال هذا الاستخدام ببدائل مماثلة في حزمة SDK الخاصة بعمليات تثبيت Firebase أو حزمة FCM SDK.
استرداد معرّف
يتم استبدال طرق الحصول على أرقام تعريف المثيلات بطرق للحصول على رقم تعريف عمليات التثبيت. على سبيل المثال:
قبل
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") } }
استرداد الرمز المميز للتسجيل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase"
قبل طرح عمليات تثبيت Firebase، استرجع عملاء خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" رموز التسجيل المميَّزة من رقم تعريف المثيل. توفِّر حزمة تطوير البرامج (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; } }];