توفِّر خدمة عمليات تثبيت Firebase (FIS) رقم تعريف تثبيت Firebase (FID) لكل نسخة افتراضية مثبَّتة لتطبيق Firebase. يستخدِم Firebase رقم تعريف تثبيت Firebase داخليًا. التالية:
خدمة Firebase | وظائف عمليات التثبيت من Firebase |
---|---|
المراسلة عبر السحابة الإلكترونية من Firebase |
استخدامات "المراسلة عبر السحابة الإلكترونية من Firebase" أرقام تعريف تثبيت Firebase لاستهداف الأجهزة لتسليم الرسائل. |
Firebase Crashlytics |
يقوم Firebase Crashlytics بتدوير تثبيت Crashlytics معرّف فريد عالمي (UUID) استنادًا إلى التغييرات في 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
أضِف التبعية لعمليات تثبيت Firebase لحزمة تطوير البرامج (SDK) لنظام التشغيل Android إلى
ملف Gradle (على مستوى التطبيق) (عادةً app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:18.0.0'
JavaScript
استنادًا إلى كيفية استضافة تطبيق الويب، قد تكون الإعدادات يتم التعامل معها تلقائيًا أو قد تحتاج إلى تحديث كائن إعداد Firebase.
على سبيل المثال، إذا تمت إضافة تبعياتك في index.html، أضف السمة التبعية في <head> العنصر:
<script src="/__/firebase/10.12.3/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 قد يستمر تثبيت التطبيق في تلقّي إشعارات "المراسلة عبر السحابة الإلكترونية من 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 ضمن هذه الفئة.
التطبيقات التي تُجري طلبات بيانات من واجهة برمجة التطبيقات بشكل صريح إلى رقم تعريف المثيل يجب أن تعدِّل إصدارات حزمة تطوير البرامج (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 يستخدم مباشرةً طرق حزمة تطوير البرامج (SDK) لمعرّف المثيل، يمكنك: استبدال هذا الاستخدام ببدائل مماثلة في عمليات تثبيت Firebase SDK أو 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" رموز التسجيل المميزة التي تم استردادها من معرّف المثيل. والآن، تم تطوير حزمة تطوير البرامج للمراسلة عبر السحابة الإلكترونية من Firebase طرقًا لاسترداد الرمز المميز للتسجيل.
قبل
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; } }];