Java Admin SDK v7-এ মাইগ্রেট করুন

জাভার জন্য ফায়ারবেস অ্যাডমিন এসডিকে-এর সংস্করণ ৭.০.০ এপিআই-তে কিছু গুরুত্বপূর্ণ পরিবর্তন এনেছে। প্রধানত, এই রিলিজের এপিআই পরিবর্তনগুলো হলো Authentication এবং FCM ত্রুটি ব্যবস্থাপনায় নতুন সংযোজন ও উন্নতি।

সাধারণ ত্রুটি পরিচালনা পরিবর্তন

FirebaseException বেস ক্লাস এখন বেশ কিছু নতুন অ্যাট্রিবিউট প্রকাশ করেছে:

  • ErrorCode getErrorCode() : এক্সেপশনটির সাথে সম্পর্কিত প্ল্যাটফর্ম এরর কোডটি রিটার্ন করে। FirebaseException এর প্রতিটি ইনস্ট্যান্সের একটি নন-নাল প্ল্যাটফর্ম এরর কোড থাকবেই, এটি নিশ্চিত। সম্ভাব্য প্ল্যাটফর্ম এরর কোডগুলো ErrorCode নামক একটি নতুন enum টাইপ হিসেবে সংজ্ঞায়িত করা হয়েছে।
  • IncomingHttpResponse getHttpResponse() : এক্সেপশনের সাথে সম্পর্কিত HTTP রেসপন্সটি রিটার্ন করে। ব্যাকএন্ড HTTP রেসপন্স ছাড়া অন্য কোনো কারণে এক্সেপশনটি ঘটলে এর মান null হতে পারে।

আগের মতোই, SDK-তে সংজ্ঞায়িত বেশিরভাগ অন্যান্য এক্সেপশন টাইপ (উদাহরণস্বরূপ, FirebaseAuthException , FirebaseMessagingException ) FirebaseException বেস ক্লাস থেকে উদ্ভূত হয়।

প্রমাণীকরণ ত্রুটি পরিচালনায় পরিবর্তন

FirebaseAuth ক্লাসের সমস্ত API, FirebaseAuthException এর ইনস্ট্যান্স থ্রো করতে পারে। অ্যাসিঙ্ক API (উদাহরণস্বরূপ, যে মেথডগুলো ApiFuture রিটার্ন করে) একটি ExecutionException মাধ্যমে ফেইল করতে পারে, যা একটি FirebaseAuthException র‍্যাপ করে। Auth-এর জন্য নির্দিষ্ট এরর কোডগুলো নতুন enum টাইপ AuthErrorCode এ পাবলিকলি সংজ্ঞায়িত করা আছে।

পূর্বে (<= v6.15.0)

try {
  FirebaseAuth.getInstance().verifyIdToken(idToken, true);
} catch (FirebaseAuthException ex) {
  if (ex.getErrorCode().equals("id-token-revoked")) {
    System.err.println("ID token has been revoked");
  } else {
    System.err.println("ID token is invalid");
  }
}

এখন (>= v7.0.0)

try {
  FirebaseAuth.getInstance().verifyIdToken(idToken, true);
} catch (FirebaseAuthException ex) {
  if (ex.getAuthErrorCode() == AuthErrorCode.REVOKED_ID_TOKEN) {
    System.err.println("ID token has been revoked");
  } else {
    System.err.println("ID token is invalid");
  }
}

বেস FirebaseException টাইপ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ErrorCode পাশাপাশি AuthErrorCode টিও থাকে। প্রয়োজনে আপনি এমন এরর হ্যান্ডলিং লজিক প্রয়োগ করতে পারেন যা উভয় এরর কোডই পরীক্ষা করে।

FCM ত্রুটি পরিচালনা পরিবর্তন

FirebaseMessaging ক্লাসের সমস্ত API, FirebaseMessagingException এর ইনস্ট্যান্স থ্রো করতে পারে। অ্যাসিঙ্ক API (উদাহরণস্বরূপ, যে মেথডগুলো ApiFuture রিটার্ন করে) একটি ExecutionException মাধ্যমে ব্যর্থ হতে পারে, যা একটি FirebaseMessagingException র‍্যাপ করে। Authentication -নির্দিষ্ট এরর কোডগুলো MessagingErrorCode নামক নতুন enum টাইপে পাবলিকলি সংজ্ঞায়িত করা আছে।

পূর্বে (<= v6.15.0)

try {
  FirebaseMessaging.getInstance().send(message);
} catch (FirebaseMessagingException ex) {
  if (ex.getErrorCode().equals("registration-token-not-registered")) {
    System.err.println("Device token has been unregistered");
  } else {
    System.err.println("Failed to send the notification");
  }
}

এখন (>= v7.0.0)

try {
  FirebaseMessaging.getInstance().send(message);
} catch (FirebaseMessagingException ex) {
  if (ex.getMessagingErrorCode() == MessagingErrorCode.UNREGISTERED) {
    System.err.println("Device token has been unregistered");
  } else {
    System.err.println("Failed to send the notification");
  }
}

বেস FirebaseException টাইপ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ErrorCode পাশাপাশি MessagingErrorCode টিও থাকে। প্রয়োজনে আপনি এমন এরর হ্যান্ডলিং লজিক প্রয়োগ করতে পারেন যা উভয় এরর কোডই খতিয়ে দেখবে।

Authentication কাস্টম দাবি

অপ্রচলিত FirebaseAuth.setCustomClaims() মেথডটি সরিয়ে ফেলা হয়েছে। এর পরিবর্তে FirebaseAuth.setCustomUserClaims() ব্যবহার করুন।

পূর্বে (<= v6.15.0)

FirebaseAuth.getInstance().setCustomClaims(uid, claims);

এখন (>= v7.0.0)

FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);

FCM বিজ্ঞপ্তি নির্মাতা

Notification ক্লাসের অপ্রচলিত কনস্ট্রাক্টরগুলো সরিয়ে ফেলা হয়েছে। নতুন ইনস্ট্যান্স তৈরি করতে Notification.Builder ক্লাসটি ব্যবহার করুন।

পূর্বে (<= v6.15.0)

Notification notification = new Notification(title, body, url);

এখন (>= v7.0.0)

Notification notification = Notification.builder()
  .setTitle(title)
  .setBody(body)
  .setImage(url)
  .build();