Firebase ইনস্টলেশন পরিষেবা (FIS) প্রতিটি ইনস্টল করা ইনস্ট্যান্সের জন্য একটি Firebase ইনস্টলেশন আইডি (FID) প্রদান করে Firebase অ্যাপের। Firebase ইনস্টলেশন আইডি এই Firebase দ্বারা অভ্যন্তরীণভাবে ব্যবহৃত হয় পরিষেবা:
| Firebase পরিষেবা | Firebase ইনস্টলেশন কার্যকারিতা |
|---|---|
| Firebase Cloud Messaging |
Firebase Cloud Messaging Firebase ইনস্টলেশন আইডি ব্যবহার করে মেসেজ ডেলিভারির জন্য ডিভাইস টার্গেট করে। |
| Firebase Crashlytics |
অ্যাপ ইনস্ট্যান্সের Firebase ইনস্টলেশন আইডিতে হওয়া পরিবর্তনের ভিত্তিতে Firebase Crashlytics, Crashlytics ইনস্টলেশন UUID রোটেট করে। ভবিষ্যতে, ইনস্টলেশন আইডি এমন ফিচার চালু করতে ব্যবহার করা হতে পারে যা ক্র্যাশ রিপোর্টিং এবং ক্র্যাশ ম্যানেজমেন্ট পরিষেবা উন্নত করে। |
| Firebase In-App Messaging |
Firebase In-App Messaging Firebase ইনস্টলেশন আইডি ব্যবহার করে মেসেজ ডেলিভারির জন্য ডিভাইস টার্গেট করে। |
| Firebase Performance Monitoring |
Performance Monitoring, Firebaseটি ইনস্টলেশন আইডি ব্যবহার করে নেটওয়ার্ক রিসোর্স অ্যাক্সেস করা অনন্য Firebase ইনস্টলেশনের সংখ্যা গণনা করে, যাতে অ্যাক্সেস প্যাটার্ন যথেষ্ট পরিমাণে পরিচয় গোপন করে তা নিশ্চিত করা যায়। এছাড়াও, এটি Firebase Remote Config-এর সাথে Firebase ইনস্টলেশন আইডি ব্যবহার করে পারফর্ম্যান্স ইভেন্ট রিপোর্টিংয়ের রেট ম্যানেজ করে। |
| 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-তে সরাসরি কল করা শুরু করতে, আপনার অ্যাপে SDK যোগ করুন।
আপনার অ্যাপে Firebase ইনস্টলেশন SDK যোগ করুন
iOS+
- আপনার Podfile-এ Firebase ইনস্টলেশনের জন্য ডিপেন্ডেন্সি যোগ করুন:
pod 'FirebaseInstallations'
pod installরান করুন এবং তৈরি করা.xcworkspaceফাইল খুলুন।- আপনার
UIApplicationDelegate-এFirebaseCoreমডিউল ইমপোর্ট করুন, সেইসাথে আপনার অ্যাপ ডেলিগেট ব্যবহার করে এমন অন্য যেকোনও 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; // ...
- আপনার অ্যাপ ডেলিগেটের
application(_:didFinishLaunchingWithOptions:)পদ্ধতিতেFirebaseAppশেয়ার করা ইনস্ট্যান্স কনফিগার করুন: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 ব্যবহার করলে, আপনাকে অবশ্যই একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং এটি
আপনার
Appস্ট্রাকচারেUIApplicationDelegateAdaptorবাNSApplicationDelegateAdaptor-এর মাধ্যমে অ্যাটাচ করতে হবে। এছাড়াও, আপনাকে অ্যাপ ডেলিগেট সুইজলিং বন্ধ করতে হবে। আরও তথ্যের জন্য, 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
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত app/build.gradle) Firebase ইনস্টলেশন Android SDK-এর জন্য
ডিপেন্ডেন্সি যোগ করুন:
implementation 'com.google.firebase:firebase-installations:20.0.0'
জাভাস্ক্রিপ্ট
আপনার ওয়েব অ্যাপ্লিকেশন কীভাবে হোস্ট করা হয়েছে তার উপর নির্ভর করে, আপনার কনফিগারেশন অটোমেটিক ম্যানেজ করা হতে পারে অথবা আপনাকে Firebase কনফিগারেশন অবজেক্ট আপডেট করতে হতে পারে।
যেমন, আপনার ডিপেন্ডেন্সি index.html-এ যোগ করা থাকলে, <head> এলিমেন্টে ডিপেন্ডেন্সি যোগ করুন:
<script src="/__/firebase/13.0.0/firebase-installations.js"></script>
Flutter
আপনার Flutter প্রোজেক্টের রুট ডিরেক্টরি থেকে, Firebase ইনস্টলেশন প্লাগ-ইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি রান করুন:
flutter pub add firebase_app_installationsআপনার প্রোজেক্ট আবার তৈরি করুন:
flutter runFirebase ইনস্টলেশন প্লাগ-ইন ইমপোর্ট করুন:
import 'package:firebase_app_installations/firebase_app_installations.dart';
Firebase ইনস্টলেশন মুছে দিন
Firebase ইনস্টলেশনের সাথে যুক্ত ডেটা সাধারণত ব্যক্তিগতভাবে শনাক্তকরণযোগ্য নয়। তবুও, ব্যবহারকারীদের এই ডেটা ম্যানেজ ও মুছে ফেলার বিকল্প দিলে তা সহায়ক হতে পারে।
প্রতিটি অ্যাপ্লিকেশনের প্রতিটি ইনস্টলেশনের জন্য Firebase ইনস্টলেশন আইডি আলাদা হয়; একই ডিভাইসে বিভিন্ন অ্যাপ্লিকেশনের জন্য আলাদা Firebase ইনস্টলেশন আইডি থাকে। Firebase ইনস্টলেশন আইডি অ্যাপ ইনস্টলেশন এবং সেই অ্যাপ ইনস্টলেশনের সাথে যুক্ত ডেটা শনাক্ত করে।
আপনি কোনও ইনস্টলেশন আইডি মুছে দিলে, সেই ইনস্টলেশন আইডির সাথে যুক্ত ডেটা Firebase ইনস্টলেশন আইডি ব্যবহার করে এমন সব Firebase পরিষেবার লাইভ ও ব্যাক-আপ সিস্টেম থেকে মুছে ফেলা হয়। এই আইডিগুলি ১৮০ দিনের মধ্যে ইনস্টলেশন শনাক্ত করতে ব্যবহার করা হয়। এই প্রসেসটি Google-এর মুছে ফেলা এবং রেখে দেওয়া সংক্রান্ত বিবৃতিতে উচ্চ স্তরে বর্ণনা করা হয়েছে।
আপনার অ্যাপে FID-জেনারেট করা সব পরিষেবা বন্ধ না করলে, FIS কয়েক দিনের মধ্যে নতুন ID তৈরি করে। Firebase নতুন তৈরি করা আইডিকে নতুন Firebase ইনস্টলেশন হিসেবে বিবেচনা করে এবং কোনওভাবেই এটিকে আগের আইডি বা ডেটার সাথে যুক্ত করে না।
ক্লায়েন্ট API কলের মাধ্যমে FID মুছে দেওয়া
Firebase পরিষেবার মাধ্যমে তৈরি করা FID মুছে দিতে, Firebase ইনস্টলেশন SDK থেকে উপযুক্ত পদ্ধতি কল করুন:
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();
সার্ভার API কলের মাধ্যমে FID মুছে দেওয়া
সার্ভার API কলের মাধ্যমে FID মুছতে, আপনার সার্ভারে Firebase Admin SDK যোগ করুন, যদি আপনি আগে থেকে তা না করে থাকেন।
SDK যোগ করা হয়ে গেলে, আপনার পছন্দের ভাষায় মুছে ফেলার ফাংশনে কল করার মাধ্যমে FID মুছে দিন (মনে রাখবেন: Node.js ছাড়া, এইসব পদ্ধতিতে ইনস্ট্যান্স আইডি-র নাম দেখানো হয়। তবে, বর্তমান কোনও Firebase SDK-এর সাথে কল করা হলে, এগুলি সবই আসলে 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();
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)
}
আপনি সার্ভার API কলের মাধ্যমে Firebase ইনস্টলেশন আইডি মুছে দিলে, 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 পরিষেবা, FIS থেকে পাওয়া অথেন্টিকেশন টোকেন ব্যবহার করে Firebase ইনস্টলেশন যাচাই করতে পারে। যেমন, Remote Config-এর জন্য 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
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)-এর জন্য বিশেষ মনিটরিংয়ের প্রয়োজন হয় না। তবে, যেসব অ্যাপ স্পষ্টভাবে FID ফিরিয়ে আনে এবং ব্যবহার করে, সেগুলির FID মুছে ফেলা বা রোটেশন মনিটর করার জন্য লজিক যোগ করা উচিত। এখানে কিছু উদাহরণ দেওয়া হল যেখানে FID মুছে দেওয়া বা রোটেট করা হতে পারে:
- অ্যাপ আনইনস্টল বা আবার ইনস্টল করা, যেমন কোনও ব্যবহারকারী নতুন ডিভাইসে ইনস্টল করলে।
- ব্যবহারকারী অ্যাপ বা ডিভাইসের ক্যাশে মুছে দেন।
- অ্যাপে অ্যাক্টিভিটি না থাকার কারণে ব্যাকএন্ডে 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 অ্যাসাইন করা হলে, NSNotificationName.InstallationIDDidChange নামের একটি NSNotification
ডিফল্ট NSNotificationCenter-এ পোস্ট করা হয়।
Android
নতুন FID ফিরিয়ে আনার জন্য ব্যর্থ কলে উত্তর দিতে Kotlin ও Java ক্লায়েন্টদের আবার চেষ্টা করার লজিক যোগ করতে হবে।
জাভাস্ক্রিপ্ট
ওয়েব অ্যাপ 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');
});
Instance ID থেকে Firebase ইনস্টলেশনে মাইগ্রেট করুন
Firebase ইনস্টলেশন চালু করার আগে, Firebase অ্যাপ ইনস্টলের শনাক্তকারীর জন্য Instance ID SDK-এর উপর নির্ভর করত। Firebase ইনস্টলেশন নির্ভরযোগ্যতা, পারফর্ম্যান্স ও সুরক্ষার ক্ষেত্রে ইনস্ট্যান্স আইডির চেয়ে অনেক বেশি সুবিধা প্রদান করে। Instance ID SDK-এর উপর নির্ভর করে এমন Firebase অ্যাপকে Firebase ইনস্টলেশনে মাইগ্রেট করতে হবে।
আপনার অ্যাপের উপর ভিত্তি করে মাইগ্রেশন প্রসেস আলাদা হয়:
যেসব অ্যাপ সরাসরি Instance ID API কল করে না, সেগুলি SDK ভার্সন আপডেট করে মাইগ্রেট করতে পারে। অধিকাংশ Firebase অ্যাপ এই বিভাগের মধ্যে পড়ে।
যেসব অ্যাপ স্পষ্টভাবে ইনস্ট্যান্স আইডিতে API কল করে, সেগুলিকে অবশ্যই SDK ভার্সন আপডেট করতে হবে এবং কোডে পরিবর্তন করতে হবে যাতে ইনস্ট্যান্স আইডি পদ্ধতিগুলি তাদের Firebase ইনস্টলেশন বা FCM সমতুল্য দিয়ে প্রতিস্থাপন করা যায়। আপনার অ্যাপ যদি Instance ID ব্যবহার করে FCM রেজিস্ট্রেশন টোকেন ফিরিয়ে আনে অথবা স্পষ্টভাবে Instance ID ব্যবহার করে অ্যাপ ইনস্ট্যান্স টার্গেট করে বা অন্য কোনও উদ্দেশ্যে ব্যবহার করে, তাহলে আপনাকে অ্যাপ্লিকেশন কোড আপডেট করতে হবে।
বর্তমানে, FIS লেগ্যাসি শনাক্তকারী Firebase ইনস্ট্যান্স আইডির সাথে ব্যাকওয়ার্ড কম্প্যাটিবল। IID মুছে ফেলা হল এই Firebase SDK-এর মাধ্যমে ডেটা মুছে ফেলার অনুরোধ করার একটি বিকল্প পদ্ধতি:
- iOS 6.14.0 এবং তার আগের ভার্সন
- ২৭ ফেব্রুয়ারি, ২০২০-এর আগের Android SDK
এর অর্থ হল, অ্যাপগুলিকে Firebase ইনস্টলেশনে মাইগ্রেট করার প্রয়োজন নেই; তবে, এটি করার জন্য বিশেষভাবে সাজেস্ট করা হচ্ছে।
Firebaseটি ইনস্টলেশনের জন্য ন্যূনতম SDK ভার্সনে আপগ্রেড করা হচ্ছে
Instance ID থেকে Firebase ইনস্টলেশনে মাইগ্রেট করতে, আপনার অ্যাপ্লিকেশনগুলি যাতে নিম্নলিখিত Firebase SDK-এর তালিকাভুক্ত ন্যূনতম ভার্সন নম্বর ব্যবহার করে তা নিশ্চিত করুন:
| Firebase SDK | Android-এর ন্যূনতম ভার্সন | iOS-এর ন্যূনতম ভার্সন |
| Firebase ক্লাউড মেসেজিং | v20.3.0 | v6.34.0 |
| রিমোট কনফিগ | v19.2.0 | v6.24.0 |
| Google Analytics for Firebase \ (Measurement SDK) | v17.4.4 | v6.18.0 |
| In-App Messaging | 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 API-কে স্পষ্টভাবে কল করে এমন কোড আপডেট করা
আপনার 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)") } }
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 SDK রেজিস্ট্রেশন টোকেন ফিরিয়ে আনার পদ্ধতি প্রদান করে।
আগে
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); } }];