Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

ফায়ারবেস ইনস্টলেশন পরিচালনা করুন

ফায়ারবেস ইনস্টলেশন সার্ভিস (এফআইএস) ফায়ারবেস অ্যাপের প্রতিটি ইনস্টল করা উদাহরণের জন্য একটি ফায়ারবেস ইনস্টলেশন আইডি (এফআইডি) প্রদান করে। ফায়ারবেস ইনস্টলেশন আইডি অভ্যন্তরীণভাবে ফায়ারবেস পরিষেবাগুলি যেমন ইন-অ্যাপ মেসেজিং বা রিমোট কনফিগারেশন ব্যবহার করে ডেভেলপারদের সরাসরি এফআইএস এপিআই-এর সাথে যোগাযোগ করার প্রয়োজন ছাড়াই ব্যবহার করা হয়। যাইহোক, এমন কিছু ঘটনা আছে যেখানে অ্যাপ ডেভেলপাররা সরাসরি FIS API- কে কল করতে চাইতে পারে, যেমন:

  • একটি Firebase ইনস্টলেশন এবং ইনস্টলেশনের সাথে সংযুক্ত ডেটা মুছে ফেলার জন্য।
  • নির্দিষ্ট অ্যাপ ইনস্টলেশনের লক্ষ্যে শনাক্তকারী (ফায়ারবেস ইনস্টলেশন আইডি) পুনরুদ্ধার করতে।
  • ফায়ারবেস ইনস্টলেশনের প্রমাণীকরণের জন্য ইনস্টলেশন অথ টোকেন পুনরুদ্ধার করতে।

সরাসরি এফআইএস এপিআই কল করার সাথে শুরু করতে, আপনার অ্যাপে এসডিকে যুক্ত করুন।

আপনার অ্যাপে Firebase ইনস্টলেশন SDK যোগ করুন

আইওএস

  1. : আপনার Podfile করার Firebase ইনস্টলেশনের জন্য নির্ভরতা যোগ
    pod 'Firebase/Installations'
  2. চালান pod install এবং তৈরি খুলতে .xcworkspace ফাইল।
  3. আপনার Firebase মডিউল আমদানি UIApplicationDelegate :

    সুইফট

    import Firebase

    উদ্দেশ্য গ

    @import Firebase;
  4. কনফিগার একটি FirebaseApp , উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যে application:didFinishLaunchingWithOptions: পদ্ধতি:

    সুইফট

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

    উদ্দেশ্য গ

    // Use Firebase library to configure APIs
    [FIRApp configure];

অ্যান্ড্রয়েড

Firebase ইনস্টলেশনের অ্যান্ড্রয়েড SDK এর আপনার মডিউল (অ্যাপ্লিকেশান-স্তর) Gradle ফাইল (সাধারণত করার জন্য নির্ভরতা যোগ app/build.gradle ):

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

জাভাস্ক্রিপ্ট

কিভাবে আপনার ওয়েব অ্যাপ্লিকেশন হোস্ট করা হয় উপর নির্ভর করে, আপনার কনফিগারেশন স্বয়ংক্রিয়ভাবে ঘাঁটা করা যেতে পারে অথবা আপনি আপনার আপডেট করার জন্য প্রয়োজন হতে পারে Firebase কনফিগারেশন বস্তুর

উদাহরণস্বরূপ, যদি আপনার নির্ভরতা index.html এ যোগ করা হয়, <head> এলিমেন্টে নির্ভরতা যোগ করুন:

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

একটি Firebase ইনস্টলেশন মুছুন

ডেটা একটি Firebase ইনস্টলেশন বাঁধা সাধারণত ব্যক্তিগত শনাক্তকরণ নয়। তবুও, ব্যবহারকারীদের এই ডেটা পরিচালনা এবং মুছে ফেলার বিকল্প দেওয়া সহায়ক হতে পারে।

প্রতিটি অ্যাপ্লিকেশনের প্রতিটি ইনস্টলেশনের জন্য ফায়ারবেস ইনস্টলেশন আইডি আলাদা; একই ডিভাইসে বিভিন্ন অ্যাপ্লিকেশনের বিভিন্ন Firebase ইনস্টলেশন আইডি রয়েছে। ফায়ারবেস ইনস্টলেশন আইডি অ্যাপ ইনস্টলেশন এবং সেই অ্যাপ ইনস্টলেশনের সাথে সংযুক্ত ডেটা সনাক্ত করে।

যখন আপনি একটি ইনস্টলেশন আইডি মুছে ফেলেন, সেই ইনস্টলেশন আইডির সাথে সংযুক্ত ডেটাগুলি সমস্ত ফায়ারবেস পরিষেবার লাইভ এবং ব্যাকআপ সিস্টেম থেকে সরানো হয় যা 180 দিনের মধ্যে ইনস্টলেশন সনাক্ত করতে ফায়ারবেস ইনস্টলেশন আইডি ব্যবহার করে। এই প্রক্রিয়া গুগলের উচ্চ পর্যায়ে বর্ণনা করা হয়েছে মুছে ফেলার এবং স্মৃতিশক্তি উপর বিবৃতি

যতক্ষণ না আপনি আপনার অ্যাপে সমস্ত FID- উত্পাদনকারী পরিষেবাগুলি অক্ষম করেন, FIS কয়েক দিনের মধ্যে একটি নতুন আইডি তৈরি করে। ফায়ারবেস নতুন তৈরি আইডিকে একটি নতুন ফায়ারবেস ইনস্টলেশন বলে মনে করে এবং এটিকে আগের আইডি বা ডেটার সাথে কোনোভাবেই যুক্ত করে না।

ক্লায়েন্ট এপিআই কল দিয়ে একটি এফআইডি মুছুন

ফায়ারবেস পরিষেবাদি দ্বারা উত্পন্ন এফআইডি মুছে ফেলার জন্য, ফায়ারবেস ইনস্টলেশন এসডিকে থেকে উপযুক্ত পদ্ধতিতে কল করুন:

সুইফট

Installations.installations().delete { error in
  if let error = error {
    print("Error deleting installation: \(error)")
    return
  }
  print("Installation deleted");
}

উদ্দেশ্য গ

[[FIRInstallations installations] deleteWithCompletion:^(NSError *error) {
   if (error != nil) {
     NSLog(@"Error deleting Installation %@", error);
     return;
   }
   NSLog(@"Installation deleted");
}];

জাভা

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");
        }
    }
});

কোটলিন+কেটিএক্স

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();

একটি সার্ভার API কল দিয়ে একটি FID মুছে দিন

একটি সার্ভার API কল সঙ্গে একটি Fid মুছে ফেলার জন্য, আপনার সার্ভারে Firebase এডমিন SDK এর যোগ , যদি আপনি ইতিমধ্যে না।

একবার SDK যোগ হয়ে গেলে, আপনার পছন্দের ভাষায় মুছে ফাংশনে একটি কলের মাধ্যমে FID মুছে ফেলুন (দ্রষ্টব্য: Node.js ব্যতীত, এই পদ্ধতিগুলি Instance ID নামকরণকে প্রতিফলিত করে। যাইহোক, এগুলি আসলে যে কোনও বর্তমান Firebase- এ কল করার সময় FID মুছে দেয় এসডিকে)।

Node.js

// An FIDsent from a client service SDK
const idToDelete = 'eyJhbGciOiJFUzI1N_iIs5';

admin.installations().deleteInstallation(idToDelete);

জাভা

// 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)
}

যখন আপনি একটি সার্ভার এপিআই কল দিয়ে একটি ফায়ারবেস ইনস্টলেশন আইডি মুছে ফেলেন, তখন ফায়ারবেস পরিষেবাগুলি সেই ইনস্টলেশন আইডির সাথে সংযুক্ত ডেটা মুছে ফেলার প্রক্রিয়া শুরু করে, 1-2 দিনের মধ্যে সেই আইডির জন্য নতুন ডেটা গ্রহণ বন্ধ করে দেয়, এবং তারপর ক্লায়েন্ট অ্যাপকে অবহিত করে যে আইডি মুছে ফেলা হয়েছে যতক্ষণ না ফায়ারবেস ক্লায়েন্ট অ্যাপকে অবহিত করে, অ্যাপের কিছু পরিষেবা এখনও আইডি লক্ষ্য করতে পারে - উদাহরণস্বরূপ, একটি ফায়ারবেস ইনস্টলেশন কয়েক ঘন্টার জন্য FCM বিজ্ঞপ্তি পেতে পারে।

আপনি যদি বর্তমান Firebase ইনস্টলেশন আইডি মুছে ফেলতে চান এবং অবিলম্বে একটি নতুন, সম্পর্কহীন আইডি দিয়ে Firebase পরিষেবাগুলি ব্যবহার করতে চান, তাহলে মুছে ফেলার জন্য ক্লায়েন্ট API ব্যবহার করুন।

ক্লায়েন্ট সনাক্তকারী পুনরুদ্ধার করুন

আপনার অ্যাপের নির্দিষ্ট ইনস্টলেশন শনাক্ত করার জন্য আপনার যদি কোন প্রয়োজন থাকে, তাহলে আপনি Firebase ইনস্টলেশন আইডি পুনরুদ্ধার করে এটি করতে পারেন। উদাহরণস্বরূপ, ফায়ারবেস ইন-অ্যাপ মেসেজিং ডেভেলপমেন্টের সময় পরীক্ষা করার জন্য, আপনি সঠিক পরীক্ষা ডিভাইসটিকে তার ফায়ারবেস ইনস্টলেশন আইডি ব্যবহার করে চিহ্নিত করতে এবং লক্ষ্য করতে পারেন।

একটি Firebase ইনস্টলেশন আইডি পুনরুদ্ধার করতে:

সুইফট

Installations.installations().installationID { (id, error) in
  if let error = error {
    print("Error fetching id: \(error)")
    return
  }
  guard let id = id else { return }
  print("Installation ID: \(id)")
}

উদ্দেশ্য গ

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

জাভা

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");
        }
    }
});

কোটলিন+কেটিএক্স

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);

ইনস্টলেশন অথ টোকেন পুনরুদ্ধার করুন

ফায়ারবেস পরিষেবাগুলি এফআইএস থেকে প্রাপ্ত অটথ টোকেনগুলির সাহায্যে ফায়ারবেস ইনস্টলেশনগুলি প্রমাণ করতে পারে। উদাহরণস্বরূপ, রিমোট কনফিগারের জন্য A/B পরীক্ষাগুলি ডিজাইন করার সময়, আপনি একটি ইনস্টলেশন অথ টোকেন ব্যবহার করে একটি লক্ষ্যযুক্ত পরীক্ষা ডিভাইস প্রমাণ করতে পারেন।

একটি ইনস্টলেশন অথ টোকেন JSON ওয়েব টোকেন (JWT) ফর্ম্যাটে একটি স্বল্পকালীন বহনকারী টোকেন যা একটি ইনস্টলেশনের জন্য নিম্নলিখিত তথ্য ধারণ করে:

  • Firebase ইনস্টলেশন আইডি
  • যুক্ত প্রজেক্ট ( projectNumber )
  • যুক্ত Firebase আবেদন আইডি ( appId )
  • টোকেনের মেয়াদ শেষ হওয়ার তারিখ

একটি ইনস্টলেশন অথ টোকেন বাতিল করা যাবে না, এবং মেয়াদ শেষ হওয়ার তারিখ পর্যন্ত বৈধ থাকবে। ডিফল্ট টোকেন জীবনকাল এক সপ্তাহ।

একটি ইনস্টলেশন অথ টোকেন পুনরুদ্ধার করতে:

সুইফট

Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
  if let error = error {
    print("Error fetching token: \(error)")
    return
  }
  guard let result = result else { return }
  print("Installation auth token: \(result.authToken)")
})

উদ্দেশ্য গ

[[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]);
}];

জাভা

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");
        }
    }
});

কোটলিন+কেটিএক্স

FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
    .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);

ফায়ারবেস ইনস্টলেশন আইডি জীবনচক্র পর্যবেক্ষণ করুন

একটি অ্যাপের স্বাভাবিক ক্রিয়াকলাপের সময়, ফায়ারবেস ইনস্টলেশন আইডি (FIDs) এর জন্য বিশেষ নজরদারির প্রয়োজন হয় না। যাইহোক, যে অ্যাপগুলি স্পষ্টভাবে FIDs পুনরুদ্ধার করে এবং ব্যবহার করে FID- এর সম্ভাব্য মোছা বা ঘূর্ণন পর্যবেক্ষণ করার জন্য যুক্তি যুক্ত করা উচিত। এখানে কিছু ক্ষেত্রে যেখানে FID মুছে ফেলা বা ঘোরানো যেতে পারে:

  • অ্যাপটি আনইনস্টল করা বা পুনরায় ইনস্টল করা, উদাহরণস্বরূপ যখন একটি শেষ ব্যবহারকারী একটি নতুন ডিভাইসে ইনস্টল করে।
  • শেষ ব্যবহারকারী অ্যাপ বা ডিভাইসের ক্যাশে সাফ করে।
  • অ্যাপের নিষ্ক্রিয়তার কারণে ব্যাকএন্ডে FID মুছে ফেলা হয়

যখন এই ধরনের ক্ষেত্রে অ্যাপগুলি FID ঘূর্ণন বা মুছে ফেলার অভিজ্ঞতা পায়, তখন তাদের একটি নতুন FID দেওয়া হয়। এছাড়াও, একটি মুছে ফেলা FID- এর সাথে সংযুক্ত ইনস্টলেশন অথ টোকেন মুছে ফেলা হয়, তার নিজের পরিপক্কতা নির্বিশেষে, এবং একটি নতুন ইনস্টলেশন auth টোকেন দ্বারা প্রতিস্থাপিত হয়।

অ্যাপগুলি এই পরিবর্তনগুলি পর্যবেক্ষণ করতে পারে এবং সেই অনুযায়ী সাড়া দিতে পারে।

FID ঘূর্ণন পর্যবেক্ষণ করতে:

সুইফট

installationIDObserver = NotificationCenter.default.addObserver(
        forName: .InstallationIDDidChange,
        object: nil,
        queue: nil
) { (notification) in
  // Fetch new Installation ID
  self.fetchInstallationToken()
}

উদ্দেশ্য গ

__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];
}];

একটি NSNotification নামে NSNotificationName.InstallationIDDidChange ডিফল্ট NSNotificationCenter যখনই একটি নতুন Fid নির্ধারিত হয় পোস্ট করা হয়।

অ্যান্ড্রয়েড

কোটলিন এবং জাভা ক্লায়েন্টদের নতুন FID পুনরুদ্ধার করতে ব্যর্থ কলগুলিতে সাড়া দেওয়ার জন্য পুনরায় চেষ্টা যুক্তি যুক্ত করা উচিত।

জাভাস্ক্রিপ্ট

ওয়েব অ্যাপ্লিকেশানগুলি সাবস্ক্রাইব করতে পারেন onIdChange হুক।

যখনই একটি নতুন এফআইডি তৈরি করা হয়, সাবস্ক্রাইব করা কলব্যাক চালু হয়:

await firebase.installations().onIdChange((newId) => {
  console.log(newId);
  // TODO: Handle new installation ID.
});

ইনস্ট্যান্স আইডি থেকে ফায়ারবেস ইনস্টলেশনে স্থানান্তর করুন

ফায়ারবেস ইনস্টলেশনের প্রবর্তনের আগে, অ্যাপ ইনস্টল শনাক্তকারীদের জন্য ফায়ারবেস ইনস্ট্যান্স আইডি এসডিকে নির্ভর করে। ফায়ারবেস ইনস্টলেশনগুলি নির্ভরযোগ্যতা, কর্মক্ষমতা এবং সুরক্ষায় ইনস্ট্যান্স আইডির উপর উল্লেখযোগ্য সুবিধা প্রদান করে। ফায়ারবেস অ্যাপস যা ইনস্ট্যান্স আইডি এসডিকে নির্ভর করে ফায়ারবেস ইনস্টলেশনে স্থানান্তরিত হওয়া উচিত।

আপনার অ্যাপের উপর ভিত্তি করে মাইগ্রেশন প্রক্রিয়া ভিন্ন:

  • অ্যাপ্লিকেশানগুলি সরাসরি ইন্সটান্স আইডি API গুলি কল না দ্বারা মাইগ্রেট করতে পারবেন তাদের SDK এর সংস্করণ আপডেট । বেশিরভাগ ফায়ারবেস অ্যাপ এই ক্যাটেগোরিতে পড়ে।

  • অ্যাপ্লিকেশানগুলি স্পষ্টভাবে ইন্সটান্স আইডি API কল SDK এর সংস্করণ এবং আপডেট করতে হবে করতে কোড পরিবর্তন তাদের Firebase ইনস্টলেশনের বা FCM সমতুল সঙ্গে ইন্সটান্স আইডি পদ্ধতি প্রতিস্থাপন। যদি আপনার অ্যাপ FCM রেজিস্ট্রেশন টোকেন পুনরুদ্ধারের জন্য ইনস্ট্যান্স আইডি ব্যবহার করে বা স্পষ্টভাবে ইনস্ট্যান্স আইডি ব্যবহার করে অ্যাপের দৃষ্টান্ত বা অন্য কোনো উদ্দেশ্যে লক্ষ্য করে, তাহলে আপনাকে আপনার অ্যাপ্লিকেশন কোড আপডেট করতে হবে।

বর্তমানে, এফআইএস উত্তরাধিকার সনাক্তকারী ফায়ারবেস ইনস্ট্যান্স আইডির সাথে পিছিয়ে-সামঞ্জস্যপূর্ণ। একটি IID মোছা এই Firebase SDK আছে সাথে ডেটা মুছে ফেলার অনুরোধ একটি বিকল্প পদ্ধতি হল:

  • iOS 6.14.0 এবং তার চেয়ে কম
  • ২ SD ফেব্রুয়ারি, ২০২০ এর আগে অ্যান্ড্রয়েড এসডিকে

এর অর্থ এই যে অ্যাপস Firebase ইনস্টলেশনের স্থানান্তর করার প্রয়োজন হয় না; যাইহোক, এটি করা অত্যন্ত বাঞ্ছনীয়।

ফায়ারবেস ইনস্টলেশনের জন্য সর্বনিম্ন SDK সংস্করণে আপগ্রেড করা হচ্ছে

ইনস্ট্যান্স আইডি থেকে ফায়ারবেস ইনস্টলেশনে স্থানান্তর করতে, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনগুলি নিম্নলিখিত ফায়ারবেস এসডিকেগুলির কমপক্ষে তালিকাভুক্ত সর্বনিম্ন সংস্করণ নম্বর ব্যবহার করে:

ফায়ারবেস এসডিকে ন্যূনতম অ্যান্ড্রয়েড সংস্করণ ন্যূনতম iOS সংস্করণ
ফায়ারবেস ক্লাউড মেসেজিং v20.3.0 v6.34.0
দূরবর্তী কনফিগারেশন v19.2.0 v6.24.0
Google Analytics \ (পরিমাপ SDK) v17.4.4 v6.18.0
ইন-অ্যাপ মেসেজিং v19.0.7 v6.24.0
কর্মক্ষমতা নিরীক্ষণ v19.0.8 v6.21.0
ক্র্যাশলাইটিক্স v17.2.1 v6.23.0
এমএল কিট v22.1.2 v6.28.0

কোড আপডেট করা যা স্পষ্টভাবে Instance ID API গুলিকে কল করে

যদি আপনার অ্যান্ড্রয়েড বা আইওএস অ্যাপ সরাসরি ইনস্ট্যান্স আইডি এসডিকে পদ্ধতি ব্যবহার করে, তাহলে আপনি সেই ব্যবহারকে ফায়ারবেস ইনস্টলেশন এসডিকে বা এফসিএম এসডিকে একই বিকল্পের সাথে প্রতিস্থাপন করতে পারেন।

একটি শনাক্তকারী পুনরুদ্ধার করা হচ্ছে

ইনস্ট্যান্স আইডি পাওয়ার পদ্ধতিগুলি একটি ইনস্টলেশন আইডি পাওয়ার পদ্ধতির সাথে প্রতিস্থাপিত হয়। উদাহরণ স্বরূপ:

আগে

সুইফট

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)"
  }
}

উদ্দেশ্য গ

[[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;
   }
 }];

জাভা

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

কোটলিন+কেটিএক্স

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

পরে

সুইফট

Installations.installations().installationID { (id, error) in
  if let error = error {
    print("Error fetching id: \(error)")
    return
  }
  guard let id = id else { return }
  print("Installation ID: \(id)")
}

উদ্দেশ্য গ

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

জাভা

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");
        }
    }
});

কোটলিন+কেটিএক্স

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

একটি শনাক্তকারী মুছে ফেলা হচ্ছে

ইনস্ট্যান্স আইডি মুছে ফেলার পদ্ধতিগুলি ফায়ারবেস ইনস্টলেশন আইডি মুছে ফেলার পদ্ধতিগুলির সাথে প্রতিস্থাপিত হয়। উদাহরণ স্বরূপ:

আগে

সুইফট

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

উদ্দেশ্য গ

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

অ্যান্ড্রয়েড

FirebaseInstanceId.deleteInstanceId();

পরে

সুইফট

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

উদ্দেশ্য গ

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

জাভা

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");
        }
    }
});

কোটলিন+কেটিএক্স

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

একটি FCM নিবন্ধন টোকেন পুনরুদ্ধার করা হচ্ছে

ফায়ারবেস ইনস্টলেশনের প্রবর্তনের আগে, FCM ক্লায়েন্ট ইনস্ট্যান্স আইডি থেকে রেজিস্ট্রেশন টোকেন উদ্ধার করে। এখন, FCM SDK নিবন্ধন টোকেন পুনরুদ্ধার করার পদ্ধতি প্রদান করে।

আগে

জাভা

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();
            }
        });

কোটলিন+কেটিএক্স

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()
        })

সুইফট

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)"
  }
}

উদ্দেশ্য গ

[[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;
   }
 }];

পরে

জাভা

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();
        }
    });

কোটলিন+কেটিএক্স

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()
})

সুইফট

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)"
  }
}

উদ্দেশ্য গ

[[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;
  }
}];