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

Java এর জন্য Firebase Admin SDK-এর সংস্করণ 7.0.0 API-তে কিছু গুরুত্বপূর্ণ পরিবর্তন এনেছে। প্রাথমিকভাবে, এই রিলিজে API পরিবর্তনগুলি হল প্রমাণীকরণ এবং FCM-এর ত্রুটি পরিচালনার ক্ষেত্রে সংযোজন এবং উন্নতি।

সাধারণ ত্রুটি হ্যান্ডলিং পরিবর্তন

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

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

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

প্রমাণীকরণ ত্রুটি হ্যান্ডলিং পরিবর্তন

FirebaseAuth ক্লাসের সমস্ত API FirebaseAuthException এর উদাহরণ দিতে পারে। Async 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");
  }
}

AuthErrorCode বেস FirebaseException প্রকার থেকে উত্তরাধিকারসূত্রে পাওয়া ErrorCode ছাড়াও। আপনি ত্রুটি পরিচালনার যুক্তি প্রয়োগ করতে পারেন যা প্রয়োজনে উভয় ত্রুটি কোড পরিদর্শন করে।

FCM ত্রুটি হ্যান্ডলিং পরিবর্তন

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

আগে (<= 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");
  }
}

MessagingErrorCode বেস FirebaseException প্রকার থেকে উত্তরাধিকারসূত্রে পাওয়া ErrorCode ছাড়াও। আপনি ত্রুটি পরিচালনার যুক্তি প্রয়োগ করতে পারেন যা প্রয়োজনে উভয় ত্রুটি কোড পরিদর্শন করে।

প্রমাণীকরণ কাস্টম দাবি

অপ্রচলিত 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();