Firebase इंस्टॉलेशन मैनेज करें

Firebase इंस्टॉलेशन सेवा (FIS) इंस्टॉल किए गए हर इंस्टेंस के लिए, 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 Remote Config के साथ Firebase इंस्टॉलेशन आईडी परफ़ॉर्मेंस इवेंट रिपोर्टिंग की दर को मैनेज करने के लिए.

Firebase Remote Config

Remote Config, Firebase इंस्टॉलेशन आईडी का इस्तेमाल करता है कॉन्फ़िगरेशन चुनने के लिए असली उपयोगकर्ता के डिवाइसों पर वापस जाने के लिए वैल्यू.

Firebase ML

क्रेडेंशियल पर कॉल किया गया इंस्टॉल करने की पुष्टि करने वाले टोकन का इस्तेमाल Firebase ML इनके लिए करता है: ऐप्लिकेशन से इंटरैक्ट करते समय डिवाइस की पुष्टि करने की सुविधा उदाहरण के लिए, डेवलपर मॉडल को ऐप्लिकेशन इंस्टेंस में डिस्ट्रिब्यूट करना.

Firebase उपयोगकर्ता को अलग-अलग सेगमेंट में बांटने के लिए स्टोरेज

Firebase उपयोगकर्ता सेगमेंटेशन स्टोरेज, Firebase इंस्टॉलेशन आईडी को स्टोर करता है टारगेटिंग की जानकारी देने के लिए, मिलते-जुलते एट्रिब्यूट और सेगमेंट और Firebase की अन्य सेवाओं पर लागू होता है.

आम तौर पर, Firebase सेवाएं बिना किसी रुकावट के Firebase इंस्टॉलेशन सेवा का इस्तेमाल करती हैं डेवलपर को FIS API से सीधे तौर पर इंटरैक्ट करना ज़रूरी है. हालांकि, कुछ मामलों में ऐसा हो सकता है कि ऐप्लिकेशन डेवलपर सीधे एफ़आईएस एपीआई, जैसे:

  • Firebase इंस्टॉलेशन और इंस्टॉलेशन से जुड़े डेटा को मिटाने के लिए.
  • टारगेट करने के लिए, आइडेंटिफ़ायर (Firebase इंस्टॉलेशन आईडी) को वापस पाने के लिए खास ऐप्लिकेशन इंस्टॉल किए जाने पर.
  • Firebase की पुष्टि करने के लिए, इंस्टॉल करने की पुष्टि करने वाले टोकन वापस पाने के लिए इंस्टॉल किए गए हैं.

सीधे कॉल करने की सुविधा का इस्तेमाल शुरू करने के लिए FIS API को जोड़ने के बाद, अपने ऐप्लिकेशन में SDK टूल जोड़ें.

अपने ऐप्लिकेशन में Firebase इंस्टॉलेशन SDK टूल जोड़ें

iOS और उसके बाद के वर्शन

  1. अपनी Podfile में, Firebase इंस्टॉलेशन के लिए डिपेंडेंसी जोड़ें:
    pod 'FirebaseInstallations'
  2. pod install चलाएं और बनाई गई .xcworkspace फ़ाइल खोलें.
  3. अपने इसमें FirebaseCore मॉड्यूल को इंपोर्ट करें UIApplicationDelegate और अन्य वे Firebase मॉड्यूल जिनका इस्तेमाल आपका ऐप्लिकेशन मैनेज करने का ऐक्सेस देने वाला व्यक्ति करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:

    स्विफ़्टयूआई

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  4. कॉन्फ़िगर करें FirebaseApp आपके ऐप्लिकेशन डेलिगेट के में शेयर किया गया इंस्टेंस application(_:didFinishLaunchingWithOptions:) तरीका:

    स्विफ़्टयूआई

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  5. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको ऐप्लिकेशन का ऐक्सेस देना होगा और उसे अटैच करना होगा UIApplicationDelegateAdaptor के ज़रिए अपने App निर्देश को या NSApplicationDelegateAdaptor. आपको ऐप्लिकेशन सौंपने की सुविधा को स्वाइप करने की सुविधा भी बंद करनी होगी. इसके लिए ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.

    स्विफ़्टयूआई

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

Android

अपने डिवाइस पर, Firebase इंस्टॉलेशन Android SDK के लिए डिपेंडेंसी जोड़ें मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर app/build.gradle):

implementation 'com.google.firebase:firebase-installations:18.0.0'

JavaScript

आपका वेब ऐप्लिकेशन कैसे होस्ट किया जाता है, इसके आधार पर आपका कॉन्फ़िगरेशन अपने-आप हैंडल होता है या आपको अपडेट करना पड़ सकता है Firebase कॉन्फ़िगरेशन ऑब्जेक्ट.

उदाहरण के लिए, अगर index.html में आपकी डिपेंडेंसी जोड़ी जाती है, तो <head> में निर्भरता एलिमेंट:

<script src="/__/firebase/10.13.1/firebase-installations.js"></script>

Flutter

  1. अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, नीचे दिए गए काम करें Firebase इंस्टॉलेशन प्लगिन को इंस्टॉल करने का निर्देश:

    flutter pub add firebase_app_installations
    
  2. अपना प्रोजेक्ट फिर से बनाएं:

    flutter run
    
  3. Firebase इंस्टॉलेशन प्लगिन इंपोर्ट करें:

    import 'package:firebase_app_installations/firebase_app_installations.dart';
    

Firebase इंस्टॉलेशन को मिटाएं

आम तौर पर, Firebase इंस्टॉलेशन से जुड़ा डेटा, व्यक्तिगत तौर पर नहीं होता है पहचान करना. फिर भी, यह मददगार हो सकता है लोगों को इस डेटा को मैनेज करने और मिटाने का विकल्प मिलता है.

हर एक डिवाइस के हर इंस्टॉलेशन के लिए, Firebase इंस्टॉलेशन आईडी अलग-अलग होते हैं आवेदन; एक ही डिवाइस पर मौजूद अलग-अलग ऐप्लिकेशन में अलग-अलग Firebase इंस्टॉलेशन आईडी. Firebase इंस्टॉलेशन आईडी, ऐप्लिकेशन की पहचान करते हैं और उससे जुड़ा डेटा उन ऐप्लिकेशन को इंस्टॉल करना ज़रूरी है.

जब किसी इंस्टॉलेशन आईडी को मिटाया जाता है, तो उससे जुड़ा डेटा सभी के लाइव और बैकअप सिस्टम से इंस्टॉलेशन आईडी को हटा दिया गया है इंस्टॉलेशन की पहचान करने के लिए, Firebase इंस्टॉलेशन आईडी का इस्तेमाल करने वाली Firebase सेवाएं 180 दिनों के अंदर. इस प्रोसेस के बारे में Google की मिटाने और निजी डेटा के रखरखाव के बारे में जानकारी.

जब तक कि आप अपने यहां एफ़आईडी जनरेट करने वाली सभी सेवाओं को बंद न कर दें ऐप्लिकेशन, एफ़आईएस कुछ दिनों में एक नया आईडी बनाता है. Firebase नए बनाए गए आईडी को नया Firebase इंस्टॉलेशन मानता है और इसे किसी भी तरह से पिछले आईडी या डेटा से नहीं जोड़ता है.

क्लाइंट एपीआई कॉल से एफ़आईडी मिटाना

Firebase सेवाओं से जनरेट किए गए एफ़आईडी मिटाने के लिए, 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+KTX

FirebaseInstallations.getInstance().delete().addOnCompleteListener { task ->
    if (task.isComplete) {
        Log.d("Installations", "Installation deleted")
    } else {
        Log.e("Installations", "Unable to delete Installation")
    }
}

JavaScript

await firebase.installations().delete();

Dart

await FirebaseInstallations.instance.delete();

सर्वर एपीआई कॉल से एफ़आईडी मिटाना

सर्वर एपीआई की मदद से एफ़आईडी मिटाने के लिए कॉल के लिए, अपने सर्वर में Firebase एडमिन SDK टूल जोड़ें.

SDK टूल जोड़ने के बाद, अपनी पसंद की भाषा में मिटाने का फ़ंक्शन (ध्यान दें: Node.js को छोड़कर, ये तरीके, इंस्टेंस आईडी का नाम दिखाते हैं. हालांकि, वे सभी असल में आपकी साइट किसी मौजूदा Firebase SDK टूल के साथ कॉल करने पर एफ़आईडी).

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 सेवाएं उस इंस्टॉलेशन आईडी से जुड़े डेटा को मिटाने की प्रोसेस शुरू करती हैं, रुक जाएं 1-2 दिनों के भीतर उस आईडी के लिए नया डेटा स्वीकार करना होगा और फिर वाला क्लाइंट ऐप्लिकेशन मौजूद है, जिसे आईडी मिटा दिया गया है. जब तक 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+KTX

FirebaseInstallations.getInstance().id.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d("Installations", "Installation ID: " + task.result)
    } else {
        Log.e("Installations", "Unable to get Installation ID")
    }
}

JavaScript

const installationId = await firebase.installations().getId();
console.log(installationId);

Dart

String id = await FirebaseInstallations.instance.getId();

इंस्टॉल करने की पुष्टि करने वाले टोकन वापस पाएं

Firebase सेवाएं, Firebase इंस्टॉल करने की पुष्टि करने के लिए, पुष्टि करने वाले टोकन का इस्तेमाल कर सकती हैं एफ़आईएस से लिया गया. उदाहरण के लिए, 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+KTX

val forceRefresh = true
FirebaseInstallations.getInstance().getToken(forceRefresh)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            Log.d("Installations", "Installation auth token: " + task.result?.token)
        } else {
            Log.e("Installations", "Unable to get Installation auth token")
        }
    }

JavaScript

const installationToken = await firebase.installations()
    .getToken(/* forceRefresh */ true);
console.log(installationToken);

Dart

String token = await FirebaseInstallations.instance.getToken();

Firebase इंस्टॉलेशन आईडी के लाइफ़साइकल पर नज़र रखें

ऐप्लिकेशन के सामान्य इस्तेमाल के दौरान, Firebase इंस्टॉलेशन आईडी (एफ़आईडी) के लिए खास निगरानी की ज़रूरत नहीं होती. हालांकि, साफ़ तौर पर एफ़आईडी वापस पाने और इस्तेमाल करने वाले ऐप्लिकेशन को डेटा को मिटाने या उसके रोटेशन को मॉनिटर करने के लिए लॉजिक जोड़ें एफ़आईडी. यहां कुछ ऐसे मामले दिए गए हैं जहां एफ़आईडी को मिटाया या घुमाया जा सकता है:

  • ऐप्लिकेशन को अनइंस्टॉल या फिर से इंस्टॉल करना. उदाहरण के लिए, जब कोई असली उपयोगकर्ता नए डिवाइस पर इंस्टॉल होता है.
  • असली उपयोगकर्ता, ऐप्लिकेशन या डिवाइस की कैश मेमोरी मिटा देता है.
  • ऐप्लिकेशन की वजह से, बैकएंड में एफ़आईडी मिटाने की प्रोसेस ट्रिगर हुई कोई गतिविधि न होना (फ़िलहाल, इसके लिए थ्रेशोल्ड 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];
}];

NSNotificationName.InstallationIDDidChange नाम का NSNotification जब भी कोई नई फ़ाइल मिलती है, तो डिफ़ॉल्ट NSNotificationCenter पर पोस्ट किया जाता है एफ़आईडी असाइन किया गया है.

Android

फ़ेल हो चुके कॉल का जवाब देने के लिए, Kotlin और Java क्लाइंट को फिर से कोशिश करने वाला लॉजिक जोड़ना चाहिए का इस्तेमाल करें.

JavaScript

वेब ऐप्लिकेशन, onIdChange हुक की सदस्यता ले सकते हैं.

जब भी कोई नया एफ़आईडी बनाया जाता है, तो जिस कॉलबैक की सदस्यता ली गई है वह होता है ट्रिगर किया गया:

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 इंस्टॉलेशन इंस्टेंस आईडी की तुलना में, विश्वसनीयता, परफ़ॉर्मेंस, और और सुरक्षा. इंस्टेंस आईडी SDK टूल पर निर्भर Firebase ऐप्लिकेशन को माइग्रेट कर लेना चाहिए Firebase इंस्टॉलेशन में.

माइग्रेशन की प्रोसेस, आपके ऐप्लिकेशन के हिसाब से अलग-अलग होती है:

  • जो ऐप्लिकेशन सीधे तौर पर इंस्टेंस आईडी एपीआई को कॉल नहीं करते हैं वे माइग्रेट कर सकते हैं अपने SDK टूल के वर्शन अपडेट करना. ज़्यादातर Firebase ऐप्लिकेशन इस कैटगरी में आते हैं.

  • साफ़ तौर पर इंस्टेंस आईडी के लिए एपीआई कॉल करने वाले ऐप्लिकेशन को SDK टूल के वर्शन अपडेट करने होंगे और इंस्टेंस आईडी बदलने के लिए कोड में बदलाव करें तरीके अपनाए हुए हैं. Firebase इंस्टॉलेशन या FCM इसके बराबर के उपकरण. अगर आपका ऐप्लिकेशन FCM रजिस्ट्रेशन टोकन फिर से पाने या साफ़ तौर पर इस्तेमाल करने के लिए इंस्टेंस आईडी इंस्टेंस आईडी को ऐप्लिकेशन इंस्टेंस या किसी अन्य मकसद से टारगेट करने के लिए, आपको अपना ऐप्लिकेशन कोड अपडेट करना होगा.

वर्तमान में, एफ़आईएस लेगसी आइडेंटिफ़ायर Firebase इंस्टेंस आईडी के साथ काम करता है. आईआईडी मिटाना यह डेटा मिटाने का अनुरोध करने का एक वैकल्पिक तरीका है. ये Firebase SDK टूल:

  • iOS 6.14.0 और इससे पहले के वर्शन
  • 27 फ़रवरी, 2020 से पहले के Android SDK

इसका मतलब है कि ऐप्लिकेशन को Firebase इंस्टॉलेशन पर माइग्रेट करने की ज़रूरी नहीं है; हालांकि, ऐसा करने का सुझाव दिया जाता है.

Firebase इंस्टॉलेशन के लिए, SDK टूल के कम से कम वर्शन पर अपग्रेड करना

इंस्टेंस आईडी से Firebase इंस्टॉलेशन पर माइग्रेट करने के लिए, पक्का करें कि एप्लिकेशन कम से कम ये हैं Firebase SDK टूल:

Firebase SDK टूल Android का कम से कम वर्शन iOS का कम से कम वर्शन
Firebase क्लाउड से मैसेज 20.3.0 वर्शन 6.34.0 वर्शन
Remote Config वर्शन 19.2.0 6.24.0 वर्शन
Firebase के लिए Google Analytics \ (मेज़रमेंट SDK) वर्शन 17.4.4 6.18.0 वर्शन
इन-ऐप्लिकेशन मैसेज वर्शन 19.0.7 6.24.0 वर्शन
परफ़ॉर्मेंस को मॉनिटर करना वर्शन 19.0.8 6.21.0 वर्शन
Crashlytics वर्शन 17.2.1 6.23.0 वर्शन
ML Kit 22.1.2 वर्शन 6.28.0 वर्शन

इंस्टेंस आईडी एपीआई को साफ़ तौर पर कॉल करने वाला कोड अपडेट करना

अगर आपका Android या Apple ऐप्लिकेशन सीधे तौर पर, इंस्टेंस आईडी SDK टूल का इस्तेमाल करता है, तो उस इस्तेमाल को Firebase इंस्टॉलेशन में मौजूद मिलते-जुलते विकल्पों से बदल दें SDK टूल या FCM SDK टूल.

किसी आइडेंटिफ़ायर को वापस पाना

इंस्टेंस आईडी पाने के तरीकों को इंस्टॉलेशन पाने के तरीकों से बदल दिया गया है आईडी. उदाहरण के लिए:

पहले

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching remote FCM registration token: \(error)")
  } else if let token = token {
    print("Remote instance ID token: \(token)")
    self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)"
  }
}

Objective-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
   if (error != nil) {
     NSLog(@"Error fetching the remote FCM registration token: %@", error);
   } else {
     NSLog(@"Remote FCM registration token: %@", token);
     NSString* message =
       [NSString stringWithFormat:@"FCM registration token: %@", token];
     self.remoteFCMTokenMessage.text = message;
   }
 }];

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                Log.d("IID_TOKEN", task.getResult().getToken());
            }
        });

Kotlin+KTX

FirebaseInstanceId.getInstance().instanceId
        .addOnSuccessListener { result ->
            Log.d("IID_TOKEN", result.token)
        }

बाद में

Swift

do {
  let id = try await Installations.installations().installationID()
  print("Installation ID: \(id)")
} catch {
  print("Error fetching id: \(error)")
}

Objective-C

[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation ID %@", error);
    return;
  }
  NSLog(@"Installation ID: %@", identifier);
}];

Java

FirebaseInstallations.getInstance().getId()
        .addOnCompleteListener(new OnCompleteListener<String>() {
    @Override
    public void onComplete(@NonNull Task<String> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation ID: " + task.getResult());
        } else {
            Log.e("Installations", "Unable to get Installation ID");
        }
    }
});

Kotlin+KTX

FirebaseInstallations.getInstance().id.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d("Installations", "Installation ID: " + task.result)
    } else {
        Log.e("Installations", "Unable to get Installation ID")
    }
}

आइडेंटिफ़ायर को मिटाना

इंस्टेंस आईडी मिटाने के तरीकों को मिटाने के तरीकों से बदल दिया गया है Firebase इंस्टॉलेशन आईडी. उदाहरण के लिए:

पहले

Swift

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

Objective-C

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

बाद में

Swift

func delete(completion: @escaping (Error?) -> Void)

Objective-C

- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;

Java

FirebaseInstallations.getInstance().delete()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation deleted");
        } else {
            Log.e("Installations", "Unable to delete Installation");
        }
    }
});

Kotlin+KTX

FirebaseInstallations.getInstance().delete().addOnCompleteListener { task ->
    if (task.isComplete) {
        Log.d("Installations", "Installation deleted")
    } else {
        Log.e("Installations", "Unable to delete Installation")
    }
}

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+KTX

FirebaseInstanceId.getInstance().instanceId
        .addOnCompleteListener(OnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w(TAG, "getInstanceId failed", task.exception)
                return@OnCompleteListener
            }

            // Get new Instance ID token
            val token = task.result?.token

            // Log and toast
            val msg = getString(R.string.msg_token_fmt, token)
            Log.d(TAG, msg)
            Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
        })

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching remote FCM registration token: \(error)")
  } else if let token = token {
    print("Remote instance ID token: \(token)")
    self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)"
  }
}

Objective-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
   if (error != nil) {
     NSLog(@"Error fetching the remote FCM registration token: %@", error);
   } else {
     NSLog(@"Remote FCM registration token: %@", token);
     NSString* message =
       [NSString stringWithFormat:@"FCM registration token: %@", token];
     self.remoteFCMTokenMessage.text = message;
   }
 }];

बाद में

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

Objective-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];