سرویس نصبهای Firebase (FIS) یک شناسه نصب Firebase (FID) برای هر نمونه نصبشده از برنامه Firebase ارائه میدهد. شناسه نصب Firebase بهصورت داخلی توسط این سرویسهای Firebase استفاده میشود:
| سرویس Firebase | عملکرد نصبهای Firebase |
|---|---|
| Firebase Cloud Messaging |
Firebase Cloud Messaging از Firebase شناسههای نصب برای هدفیابی دستگاهها جهت ارسال پیام استفاده میکند. |
| Firebase Crashlytics |
Firebase Crashlytics شناسه منحصربهفرد جهانی نصب Crashlytics را براساس تغییرات شناسه نصب Firebase نمونه برنامه میچرخاند. در آینده، ممکن است از شناسه نصب برای فعال کردن ویژگیهایی استفاده شود که سرویسهای گزارش خرابی و مدیریت خرابی را بهبود میبخشند. |
| Firebase In-App Messaging |
Firebase In-App Messaging از Firebase شناسههای نصب برای هدفیابی دستگاهها جهت ارسال پیام استفاده میکند. |
| Firebase Performance Monitoring |
Performance Monitoring از شناسههای نصب Firebase برای محاسبه تعداد نصبهای یکتای Firebase که به منابع شبکه دسترسی دارند استفاده میکند تا مطمئن شود الگوهای دسترسی بهاندازه کافی ناشناس هستند. همچنین از شناسههای نصب Firebase با Firebase Remote Config برای مدیریت نرخ گزارش رویداد عملکرد استفاده میکند. |
| Firebase Remote Config |
Remote Config از شناسههای نصب Firebase برای انتخاب مقادیر پیکربندی برای بازگرداندن به دستگاههای کاربر نهایی استفاده میکند. ویژگی شخصیسازی Remote Config از شناسههای نصب Firebase برای مرتبط کردن دادههای رویداد برنامه با نصبهای Firebase استفاده میکند تا مقادیر پیکربندی بهینه را برای دستگاههای کاربر نهایی پیشبینی کند و برگرداند. |
| Firebase ML |
اعتبارنامههایی بهنام نشانهای اصالتسنجی نصب توسط Firebase ML برای اصالتسنجی دستگاه هنگام تعامل با نمونههای برنامه استفاده میشود، برای مثال، برای توزیع مدلهای توسعهدهنده به نمونههای برنامه. |
| Firebase User Segmentation Storage |
«فضای ذخیرهسازی بخشبندی کاربر Firebase» شناسههای نصب Firebase و مشخصهها و بخشهای مرتبط را ذخیره میکند تا اطلاعات هدفیابی را به دیگر سرویسهای Firebase که از آنها استفاده میکنند ارائه دهد. |
معمولاً سرویسهای Firebase از سرویس نصبهای Firebase استفاده میکنند بدون اینکه توسعهدهندگان را ملزم به تعامل مستقیم با FIS API کنند. بااینحال، مواردی وجود دارد که توسعهدهندگان برنامه ممکن است بخواهند مستقیماً FIS API را فراخوانی کنند، مانند:
- برای حذف نصب Firebase و دادههای مرتبط با نصب.
- برای بازیابی شناسهها (شناسههای نصب Firebase) بهمنظور هدفیابی نصبهای خاص برنامه.
- برای بازیابی کردن کدهای اصالتسنجی نصب برای اصالتسنجی کردن نصبهای Firebase.
برای شروع به کار با فراخوانی مستقیم FIS API، کیت توسعه نرمافزار را به برنامهتان اضافه کنید.
کیت توسعه نرمافزار نصبهای Firebase را به برنامهتان اضافه کنید
iOS+
- وابستگی نصبهای Firebase را به Podfile خود اضافه کنید:
pod 'FirebaseInstallations'
pod installرا اجرا کنید و فایل.xcworkspaceایجادشده را باز کنید.- واحد
FirebaseCoreرا درUIApplicationDelegateو همچنین هر واحد Firebase دیگری که نماینده برنامهتان استفاده میکند وارد کنید. برای مثال، برای استفاده از Cloud Firestore و Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- یک
FirebaseAppنمونه مشترک را درapplication(_:didFinishLaunchingWithOptions:)روش نماینده برنامهتان پیکربندی کنید:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- اگر از SwiftUI استفاده میکنید، باید یک نماینده برنامه ایجاد کنید و آن را
ازطریق
UIApplicationDelegateAdaptorیاNSApplicationDelegateAdaptorبه ساختارAppخود متصل کنید. همچنین باید «سویزلینگ نماینده برنامه» را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعملهای SwiftUI را ببینید.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Android
وابستگی برای کیت توسعه نرمافزار Android نصبهای Firebase را به فایل Gradle واحد (سطح برنامه) خود (معمولاً app/build.gradle) اضافه کنید:
implementation 'com.google.firebase:firebase-installations:20.0.0'
جاوا اسکریپت
بسته به اینکه برنامه وب شما چگونه میزبانی میشود، پیکربندی شما ممکن است بهطور خودکار انجام شود یا ممکن است لازم باشد شیء پیکربندی Firebase خود را بهروز کنید.
برای مثال، اگر وابستگیهایتان در index.html اضافه شده است، وابستگی را در عنصر <head> اضافه کنید:
<script src="/__/firebase/13.0.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 برای شناسایی نصبها استفاده میکنند برداشته میشود. این فرایند در سطح بالایی در بیانیه Google درباره حذف و نگهداری شرح داده شده است.
مگر اینکه همه سرویسهای تولیدکننده FID را در برنامهتان غیرفعال کنید، FIS ظرف چند روز شناسه جدیدی ایجاد میکند. Firebase شناسه جدیداً ایجادشده را بهعنوان نصب جدید Firebase درنظر میگیرد و آن را به هیچ وجه با شناسه یا دادههای قبلی مرتبط نمیکند.
حذف کردن FID با فراخوانی میانای برنامهسازی کاربردی کارخواه
برای حذف کردن شناسههای نصب Firebase که توسط سرویسهای Firebase تولید شدهاند، روش مناسب را از کیت توسعه نرمافزار نصبهای Firebase فراخوانی کنید:
Swift
do { try await Installations.installations().delete() print("Installation deleted"); } catch { print("Error deleting installation: \(error)") }
Objective-C
[[FIRInstallations installations] deleteWithCompletion:^(NSError *error) { if (error != nil) { NSLog(@"Error deleting Installation %@", error); return; } NSLog(@"Installation deleted"); }];
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
جاوا اسکریپت
await firebase.installations().delete();
Dart
await FirebaseInstallations.instance.delete();
حذف FID با تماس میانای برنامهسازی کاربردی سرور
برای حذف FID با فراخوانی میانای برنامهسازی کاربردی سرور، Firebase Admin SDK را به سرورتان اضافه کنید (اگر قبلاً این کار را نکردهاید).
پساز افزودن کیت توسعه نرمافزار، شناسههای نصب Firebase را ازطریق فراخوانی تابع حذف به زبان انتخابیتان حذف کنید (توجه: بهجز Node.js، این روشها نامگذاری شناسه نمونه را منعکس میکنند. اما درواقع همه آنها هنگام فراخوانی با هر کیت توسعه نرمافزار Firebase فعلی، FID را حذف میکنند).
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();
پایتون
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
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 برای 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
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) به نظارت خاصی نیاز ندارند. بااینحال، برنامههایی که بهطور صریح «شناسه نصب Firebase» را بازیابی و استفاده میکنند باید منطقی را برای نظارت بر حذف یا چرخش احتمالی «شناسه نصب Firebase» اضافه کنند. در اینجا چند مورد که در آنها شناسه نصب Firebase ممکن است حذف یا چرخانده شود آورده شده است:
- حذف نصب یا بازنصب برنامه، برای مثال وقتی کاربر نهایی برنامه را در دستگاه جدیدی نصب میکند.
- کاربر نهایی حافظه پنهان برنامه یا دستگاه را پاک کند.
- حذف 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]; }];
هرزمان FID جدیدی اختصاص داده شود، NSNotification با نام NSNotificationName.InstallationIDDidChange به NSNotificationCenter پیشفرض پست میشود.
Android
کلاینتهای Kotlin و Java باید منطق تکرار مجدد را برای پاسخ دادن به تماسهای ناموفق اضافه کنند تا FID جدید را بازیابی کنند.
جاوا اسکریپت
برنامههای وب میتوانند در قلاب onIdChange مشترک شوند.
هرگاه شناسه نصب Firebase جدیدی ایجاد شود، فراخوانی برگشتی مشترکشده راهاندازی میشود:
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 که به Instance ID SDK وابسته هستند باید به نصبهای Firebase منتقل شوند.
فرایند انتقال براساس برنامه شما متفاوت است:
برنامههایی که مستقیماً میاناهای برنامهسازی کاربردی Instance ID را فراخوانی نمیکنند میتوانند با بهروزرسانی نسخههای کیت توسعه نرمافزار خود انتقال یابند. اکثر برنامههای Firebase در این دسته قرار میگیرند.
برنامههایی که بهطور صریح فراخوانیهای میانای برنامهسازی کاربردی به «شناسه نمونه» انجام میدهند باید نسخههای کیت توسعه نرمافزار را بهروز کنند و تغییراتی در کد ایجاد کنند تا روشهای «شناسه نمونه» را با Firebase نصبها یا FCM معادلهای آنها جایگزین کنند. اگر برنامهتان از Instance ID برای بازیابی FCM کد ثبت استفاده میکند یا بهطور صریح از Instance ID برای هدفیابی نمونههای برنامه یا هر هدف دیگری استفاده میکند، باید کد برنامهتان را بهروز کنید.
درحالحاضر، FIS با شناسه قدیمی Firebase Instance ID سازگار با نسخه قدیمی است. حذف کردن شناسه نمونه نمونه روش جایگزینی برای درخواست حذف داده با این کیتهای توسعه نرمافزار Firebase است:
- iOS نسخه ۶.۱۴.۰ و پایینتر
- کیتهای توسعه نرمافزار Android قدیمیتر از ۲۷ فوریه ۲۰۲۰
این یعنی برنامهها ملزم به انتقال به نصبهای Firebase نیستند؛ بااینحال، انجام این کار اکیداً توصیه میشود.
ارتقا به حداقل نسخههای کیت توسعه نرمافزار برای نصبهای Firebase
برای انتقال از «شناسه نمونه» به نصبهای Firebase، مطمئن شوید که برنامههایتان حداقل از شمارههای نسخه حداقل فهرستشده برای کیتهای توسعه نرمافزار Firebase زیر استفاده میکنند:
| کیت توسعه نرمافزار Firebase | پایینترین نسخه Android | حداقل نسخه iOS |
| پیامرسانی ابریِ Firebase | v20.3.0 | v6.34.0 |
| پیکربندی ازراهدور | v19.2.0 | v6.24.0 |
| Google Analytics برای Firebase \ (کیت توسعه نرمافزار سنجش) | v17.4.4 | v6.18.0 |
| پیامرسانی درونبرنامهای | v19.0.7 | v6.24.0 |
| پایشگر کارایی | v19.0.8 | v6.21.0 |
| Crashlytics | v17.2.1 | v6.23.0 |
| ML Kit | v22.1.2 | v6.28.0 |
بهروزرسانی کدی که بهطور صریح Instance ID APIs را فراخوانی میکند
اگر برنامه Android یا Apple شما مستقیماً از روشهای Instance ID SDK استفاده میکند، میتوانید آن کاربرد را با جایگزینهای یکسان در Firebase installations 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)") } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; // display message NSLog(@"%@", message); } }];
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { Log.d("IID_TOKEN", task.getResult().getToken()); } });
Kotlin
FirebaseInstanceId.getInstance().instanceId .addOnSuccessListener { result -> Log.d("IID_TOKEN", result.token) }
بعداز
Swift
do { let id = try await Installations.installations().installationID() print("Installation ID: \(id)") } catch { print("Error fetching id: \(error)") }
Objective-C
[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation ID %@", error); return; } NSLog(@"Installation ID: %@", identifier); }];
Java
FirebaseInstallations.getInstance().getId() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation ID: " + task.getResult()); } else { Log.e("Installations", "Unable to get Installation ID"); } } });
Kotlin
FirebaseInstallations.getInstance().id.addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation ID: " + task.result) } else { Log.e("Installations", "Unable to get Installation ID") } }
درحال حذف شناسه
روشهای حذف «شناسههای نمونه» با روشهای حذف Firebase شناسههای نصب جایگزین شده است. برای مثال:
قبل
Swift
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
Objective-C
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Android
FirebaseInstanceId.deleteInstanceId();
بعداز
Swift
func delete(completion: @escaping (Error?) -> Void)
Objective-C
- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
درحال بازیابی کد ثبت FCM
پیشاز معرفی Firebase Installations، کارخواههای FCM کدهای ثبت را از Instance ID بازیابی میکردند. اکنون، کیت توسعه نرمافزار FCM روشهایی برای بازیابی کردن کد ثبت ارائه میدهد.
قبل
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { if (!task.isSuccessful()) { Log.w(TAG, "getInstanceId failed", task.getException()); return; } // Get new Instance ID token String token = task.getResult().getToken(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin
FirebaseInstanceId.getInstance().instanceId .addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "getInstanceId failed", task.exception) return@OnCompleteListener } // Get new Instance ID token val token = task.result?.token // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
InstanceID.instanceID().instanceID { result, error in if let error = error { print("Error fetching instance ID: \(error)") } else if let result = result { print("Instance ID token: \(result.token)") } }
Objective-C
[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching instance ID: %@", error); } else { NSLog(@"Instance ID token: %@", result.token); } }];
بعداز
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; // display message NSLog(@"%@", message); } }];