Firebase इंस्टॉलेशन सेवा (एफआईएस), Firebase ऐप्लिकेशन के हर इंस्टॉल किए गए इंस्टेंस के लिए Firebase इंस्टॉलेशन आईडी (एफआईडी) उपलब्ध कराती है. Firebase इंस्टॉलेशन आईडी का इस्तेमाल, Firebase की ये सेवाएं इंटरनल तौर पर करती हैं:
| Firebase की सेवा | Firebase इंस्टॉल करने से जुड़ी सुविधा |
|---|---|
| Firebase Cloud Messaging |
Firebase Cloud Messaging, मैसेज डिलीवर करने के लिए डिवाइसों को टारगेट करने के लिए Firebase इंस्टॉल करने वाले आईडी का इस्तेमाल करता है. |
| Firebase Crashlytics |
Firebase Crashlytics, ऐप्लिकेशन इंस्टेंस के Firebase इंस्टॉलेशन आईडी में हुए बदलावों के आधार पर, Crashlytics इंस्टॉलेशन यूयूआईडी को रोटेट करता है. आने वाले समय में, इंस्टॉलेशन आईडी का इस्तेमाल ऐसी सुविधाएं चालू करने के लिए किया जा सकता है जो क्रैश रिपोर्टिंग और क्रैश मैनेजमेंट सेवाओं को बेहतर बनाती हैं. |
| 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 इंस्टॉलेशन आईडी का इस्तेमाल करता है, ताकि कॉन्फ़िगरेशन वैल्यू चुनी जा सकें. इन वैल्यू को, उपयोगकर्ता के डिवाइसों पर वापस भेजा जाता है. |
| Firebase ML |
Firebase ML, इंस्टॉलेशन की पुष्टि करने वाले टोकन नाम के क्रेडेंशियल का इस्तेमाल करता है. इनका इस्तेमाल, ऐप्लिकेशन इंस्टेंस के साथ इंटरैक्ट करते समय डिवाइस की पुष्टि करने के लिए किया जाता है. उदाहरण के लिए, डेवलपर मॉडल को ऐप्लिकेशन इंस्टेंस पर डिस्ट्रिब्यूट करने के लिए. |
| Firebase User Segmentation Storage |
Firebase User Segmentation Storage, Firebase इंस्टॉलेशन आईडी और उनसे जुड़े एट्रिब्यूट और सेगमेंट को सेव करता है. इससे, Firebase की उन सेवाओं को टारगेटिंग की जानकारी मिलती है जो इनका इस्तेमाल करती हैं. |
आम तौर पर, Firebase की सेवाएं Firebase इंस्टॉलेशन सेवा का इस्तेमाल करती हैं. इसके लिए, डेवलपर को सीधे तौर पर FIS API से इंटरैक्ट करने की ज़रूरत नहीं होती. हालांकि, ऐसे मामले हो सकते हैं जहां ऐप्लिकेशन डेवलपर सीधे तौर पर FIS API को कॉल करना चाहें. जैसे:
- Firebase इंस्टॉलेशन और उससे जुड़ा डेटा मिटाने के लिए.
- कुछ खास ऐप्लिकेशन इंस्टॉलेशन को टारगेट करने के लिए, आइडेंटिफ़ायर (Firebase इंस्टॉलेशन आईडी) वापस पाने के लिए.
- Firebase इंस्टॉलेशन की पुष्टि करने के लिए, इंस्टॉलेशन के पुष्टि करने वाले टोकन वापस पाने के लिए.
FIS API को सीधे तौर पर कॉल करने की सुविधा का इस्तेमाल शुरू करने के लिए, अपने ऐप्लिकेशन में SDK टूल जोड़ें.
अपने ऐप्लिकेशन में Firebase Installations SDK जोड़ना
iOS+
- Firebase इंस्टॉलेशन के लिए, अपनी Podfile में डिपेंडेंसी जोड़ें:
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 का इस्तेमाल किया जा रहा है, तो आपको ऐप्लिकेशन डेलिगेट बनाना होगा. साथ ही, इसे
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
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर app/build.gradle) में, Firebase installations Android SDK के लिए डिपेंडेंसी जोड़ें:
implementation 'com.google.firebase:firebase-installations:19.1.0'
JavaScript
आपका वेब ऐप्लिकेशन कैसे होस्ट किया जाता है, इसके आधार पर आपका कॉन्फ़िगरेशन अपने-आप मैनेज हो सकता है. इसके अलावा, आपको अपने Firebase कॉन्फ़िगरेशन ऑब्जेक्ट को अपडेट करना पड़ सकता है.
उदाहरण के लिए, अगर आपकी डिपेंडेंसी index.html में जोड़ी गई हैं, तो <head> एलिमेंट में डिपेंडेंसी जोड़ें:
<script src="/__/firebase/12.12.0/firebase-installations.js"></script>
Flutter
अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, Firebase installations प्लगिन इंस्टॉल करने के लिए, यह कमांड चलाएं:
flutter pub add firebase_app_installationsअपने प्रोजेक्ट को फिर से बनाएं:
flutter runFirebase installations प्लगिन इंपोर्ट करें:
import 'package:firebase_app_installations/firebase_app_installations.dart';
Firebase इंस्टॉलेशन मिटाना
किसी Firebase इंस्टॉलेशन से जुड़ा डेटा आम तौर पर, किसी व्यक्ति की पहचान ज़ाहिर नहीं करता. हालांकि, उपयोगकर्ताओं को इस डेटा को मैनेज करने और मिटाने का विकल्प देना फ़ायदेमंद हो सकता है.
Firebase हर ऐप्लिकेशन के हर इंस्टॉलेशन के लिए, इंस्टॉलेशन आईडी अलग-अलग होते हैं. एक ही डिवाइस पर मौजूद अलग-अलग ऐप्लिकेशन के लिए, Firebase इंस्टॉलेशन आईडी अलग-अलग होते हैं. Firebase इंस्टॉलेशन आईडी से, ऐप्लिकेशन इंस्टॉलेशन और उनसे जुड़े डेटा की पहचान की जाती है.
किसी इंस्टॉलेशन आईडी को मिटाने पर, उससे जुड़ा डेटा उन सभी Firebase सेवाओं के लाइव और बैकअप सिस्टम से हटा दिया जाता है जो Firebase इंस्टॉलेशन आईडी का इस्तेमाल करती हैं. ऐसा 180 दिनों के अंदर किया जाता है. इस प्रोसेस के बारे में, Google के डेटा मिटाने और उसे बनाए रखने के बारे में दिए गए बयान में बताया गया है.
जब तक अपने ऐप्लिकेशन में, FID जनरेट करने वाली सभी सेवाओं को बंद नहीं किया जाता, तब तक FIS कुछ दिनों में नया आईडी बना देता है. Firebase, नए आईडी को एक नया Firebase इंस्टॉलेशन मानता है. साथ ही, इसे पिछले आईडी या डेटा से किसी भी तरह से नहीं जोड़ता है.
क्लाइंट एपीआई कॉल की मदद से, किसी FID को मिटाना
Firebase सेवाओं से जनरेट किए गए FID मिटाने के लिए, Firebase installations 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") } }
JavaScript
await firebase.installations().delete();
Dart
await FirebaseInstallations.instance.delete();
सर्वर एपीआई कॉल की मदद से, किसी FID को मिटाना
सर्वर एपीआई कॉल का इस्तेमाल करके किसी FID को मिटाने के लिए, अपने सर्वर में Firebase Admin 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)
जाएं
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") } }
JavaScript
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") } }
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 मिटाने की प्रोसेस शुरू हो जाती है. फ़िलहाल, इसके लिए यह ज़रूरी है कि ऐप्लिकेशन का इस्तेमाल 270 दिनों तक न किया गया हो.
जब इन मामलों में ऐप्लिकेशन के लिए, एफआईडी रोटेशन या मिटाने की प्रोसेस होती है, तो उन्हें नया एफआईडी असाइन किया जाता है. इसके अलावा, हटाए गए एफआईडी से जुड़ा इंस्टॉलेशन ऑथराइज़ेशन टोकन भी हटा दिया जाता है. भले ही, उसकी समयसीमा खत्म न हुई हो. साथ ही, उसे नए इंस्टॉलेशन ऑथराइज़ेशन टोकन से बदल दिया जाता है.
ऐप्लिकेशन इन बदलावों पर नज़र रख सकते हैं और इसके मुताबिक जवाब दे सकते हैं.
एफ़आईडी रोटेशन को मॉनिटर करने के लिए:
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 असाइन किया जाता है, तब डिफ़ॉल्ट NSNotificationCenter को NSNotificationName.InstallationIDDidChange नाम की NSNotification पोस्ट की जाती है.
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, ऐप्लिकेशन इंस्टॉल करने वालों के आइडेंटिफ़ायर के लिए, इंस्टेंस आईडी SDK टूल पर निर्भर था. Firebase इंस्टॉलेशन, भरोसेमंद होने, परफ़ॉर्मेंस, और सुरक्षा के मामले में इंस्टेंस आईडी से ज़्यादा फ़ायदेमंद है. जिन Firebase ऐप्लिकेशन के लिए इंस्टेंस आईडी SDK टूल ज़रूरी है उन्हें Firebase इंस्टॉलेशन पर माइग्रेट करना चाहिए.
आपके ऐप्लिकेशन के हिसाब से, माइग्रेशन की प्रोसेस अलग-अलग होती है:
जो ऐप्लिकेशन सीधे तौर पर इंस्टेंस आईडी एपीआई को कॉल नहीं करते हैं वे अपने एसडीके वर्शन अपडेट करके माइग्रेट कर सकते हैं. ज़्यादातर Firebase ऐप्लिकेशन इस कैटगरी में आते हैं.
जिन ऐप्लिकेशन में इंस्टेंस आईडी के लिए एपीआई कॉल किए जाते हैं उन्हें एसडीके के वर्शन अपडेट करने होंगे. साथ ही, इंस्टेंस आईडी के तरीकों को Firebase इंस्टॉलेशन या FCM उनके बराबर के तरीकों से बदलने के लिए, कोड में बदलाव करने होंगे. अगर आपका ऐप्लिकेशन FCM रजिस्ट्रेशन टोकन पाने के लिए इंस्टेंस आईडी का इस्तेमाल करता है या ऐप्लिकेशन के इंस्टेंस को टारगेट करने या किसी अन्य मकसद के लिए इंस्टेंस आईडी का इस्तेमाल करता है, तो आपको अपने ऐप्लिकेशन कोड को अपडेट करना होगा.
फ़िलहाल, FIS, लेगसी आइडेंटिफ़ायर Firebase इंस्टेंस आईडी के साथ काम करता है. किसी IID को मिटाना, डेटा मिटाने का अनुरोध करने का एक और तरीका है. इसके लिए, इन Firebase SDK टूल का इस्तेमाल किया जा सकता है:
- iOS 6.14.0 और इससे पहले के वर्शन
- 27 फ़रवरी, 2020 से पहले के Android SDK टूल
इसका मतलब है कि ऐप्लिकेशन को Firebase इंस्टॉलेशन पर माइग्रेट करना ज़रूरी नहीं है. हालांकि, ऐसा करने का सुझाव दिया जाता है.
Firebase इंस्टॉल करने के लिए, एसडीके के कम से कम वर्शन पर अपग्रेड करना
Instance ID से Firebase इंस्टॉलेशन पर माइग्रेट करने के लिए, पक्का करें कि आपके ऐप्लिकेशन में, यहां दिए गए Firebase SDK टूल के कम से कम ये वर्शन इस्तेमाल किए जा रहे हों:
| Firebase SDK | Android का कम से कम वर्शन | iOS का कम से कम वर्शन |
| Firebase क्लाउड से मैसेज | v20.3.0 | v6.34.0 |
| Remote Config | v19.2.0 | v6.24.0 |
| Google Analytics for Firebase \ (Measurement SDK) | 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 ऐप्लिकेशन, सीधे तौर पर इंस्टेंस आईडी 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 क्लाइंट, इंस्टेंस आईडी से रजिस्ट्रेशन टोकन पाते थे. अब 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); } }];