سرویس نصب Firebase (FIS) برای هر نمونه نصبشده از برنامه Firebase یک Firebase شناسه نصب (FID) ارائه میدهد. این شناسه نصب 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 |
«فضای ذخیرهسازی تقسیمبندی کاربر Firebase» Firebase شناسه نصب و ویژگیها و بخشهای مربوط را برای ارائه اطلاعات هدفیابی به دیگر سرویسهای Firebase که از آنها استفاده میکنند ذخیره میکند. |
معمولاً، خدمات Firebase از سرویس نصبهای Firebase بدون نیاز به تعامل مستقیم توسعهدهندگان با FIS API استفاده میکنند. بااینحال، مواردی وجود دارد که توسعهدهندگان برنامه ممکن است بخواهند مستقیماً میانای برنامهسازی کاربردی FIS را فراخوانی کنند، ازجمله:
- برای حذف نصب Firebase و دادههای مرتبط با نصب.
- برای بازیابی شناسهها (Firebase شناسههای نصب) بهمنظور هدفیابی نصبهای برنامه خاص.
- برای بازیابی کردن کد درستیسنجی نصب برای اصالتسنجی نصبهای Firebase.
برای شروع کار با فراخوانی مستقیم «میانای برنامهسازی کاربردی FIS»، کیت توسعه نرمافزار را به برنامهتان اضافه کنید.
کیت توسعه نرمافزار نصبهای 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
وابستگی را برای نصبهای Firebase کیت توسعه نرمافزار Android به
فایل Gradle واحد (سطح برنامه) (معمولاً app/build.gradle) اضافه کنید:
implementation 'com.google.firebase:firebase-installations:19.1.2'
جاوا اسکریپت
بسته به اینکه برنامه وب شما چگونه میزبانی میشود، پیکربندی شما ممکن است بهطور خودکار مدیریت شود یا ممکن است لازم باشد شیء پیکربندی Firebase خود را بهروز کنید.
برای مثال، اگر وابستگیهایتان در index.html اضافه شده است، وابستگی را در عنصر <head> اضافه کنید:
<script src="/__/firebase/12.19.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 با فراخوانی API مشتری
برای حذف کردن FIDs تولیدشده توسط خدمات 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 با فراخوانی API سرور، اگر قبلاً این کار را نکردهاید، «کیت توسعه نرمافزار سرپرست 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 را با فراخوانی API سرور حذف میکنید، خدمات Firebase فرایند حذف دادههای مرتبط با آن شناسه نصب را شروع میکنند، پذیرش دادههای جدید برای آن شناسه را درطول ۱ تا ۲ روز متوقف میکنند، و سپس به برنامه مشتری اطلاع میدهند که شناسه حذف شده است. تا زمانی که Firebase به برنامه مشتری اطلاع دهد، برخیاز سرویسهای برنامه ممکن است همچنان شناسه را هدفیابی کنند—برای مثال، نصب Firebase ممکن است تا چند ساعت همچنان اعلانهای FCM دریافت کند.
اگر میخواهید شناسه نصب Firebase فعلی را حذف کنید و بلافاصله از سرویسهای Firebase با شناسه جدید و نامربوط استفاده کنید، از API کارخواه برای مدیریت حذف استفاده کنید.
بازیابی شناسههای کارخواه
اگر نیاز دارید نصبهای خاصی از برنامهتان را شناسایی کنید، میتوانید این کار را با بازیابی 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 شناسههای نصب (FIDs) نیازی به پایش ویژه ندارند. بااینحال، برنامههایی که بهطور صریح «شناسه تبلیغکننده» را بازیابی و استفاده میکنند باید منطقی برای نظارت بر حذف یا چرخش احتمالی «شناسه تبلیغکننده» اضافه کنند. در اینجا چند مورد از مواردی که ممکن است شناسههای فایل حذف یا چرخانده شوند آورده شده است:
- حذف نصب یا نصب مجدد برنامه، برای مثال زمانی که کاربر نهایی برنامه را روی دستگاه جدیدی نصب میکند.
- کاربر نهایی حافظه پنهان برنامه یا دستگاه را پاک کند.
- حذف FID در زیرینه بهدلیل غیرفعال بودن برنامه راهاندازی میشود (درحالحاضر آستانه این مورد ۲۷۰ روز غیرفعال بودن است).
وقتی برنامهها در این نوع موارد با چرخش یا حذف 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 مشترک شوند.
هرگاه 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 منتقل شوند.
فرایند انتقال براساس برنامه شما متفاوت است:
برنامههایی که مستقیماً «میاناهای برنامهسازی کاربردی شناسه نمونه» را فراخوانی نمیکنند میتوانند با بهروزرسانی نسخههای کیت توسعه نرمافزار خود انتقال دهند. بیشتر برنامههای Firebase در این دسته قرار میگیرند.
برنامههایی که بهطور صریح با «میانای برنامهسازی کاربردی» «شناسه نمونه» تماس میگیرند باید نسخههای کیت توسعه نرمافزار را بهروز کنند و تغییرات کد ایجاد کنند تا روشهای «شناسه نمونه» را با نصبهای Firebase یا معادلهای FCM جایگزین کنند. اگر برنامه شما از «شناسه نمونه» برای بازیابی نشانهای ثبت FCM استفاده میکند یا بهطور صریح از «شناسه نمونه» برای هدفیابی نمونههای برنامه یا برای هر هدف دیگری استفاده میکند، باید کد برنامهتان را بهروز کنید.
درحالحاضر، FIS با شناسه قدیمی «شناسه نمونه Firebase» سازگار است. حذف IID روش جایگزینی برای درخواست حذف دادهها با این کیتهای توسعه نرمافزار 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 |
بهروزرسانی کدی که بهطور صریح «میاناهای برنامهسازی کاربردی شناسه نمونه» را فراخوانی میکند
اگر برنامه Android یا Apple شما مستقیماً از روشهای «کیت توسعه نرمافزار شناسه نمونه» استفاده میکند، میتوانید آن استفاده را با جایگزینهای یکسان در کیت توسعه نرمافزار نصبهای Firebase یا کیت توسعه نرمافزار 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)") } }
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»، FCM کارخواه نشانهای ثبت را از «شناسه نمونه» بازیابی میکردند. اکنون، کیت توسعه نرمافزار 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); } }];