জাভার জন্য Firebase Admin SDK এর সংস্করণ 7.0.0 API তে কিছু গুরুত্বপূর্ণ পরিবর্তন আনে। প্রাথমিকভাবে, এই রিলিজে API পরিবর্তনগুলি হল Authentication এবং FCM জন্য ত্রুটি পরিচালনার সংযোজন এবং উন্নতি।
সাধারণ ত্রুটি পরিচালনার পরিবর্তনগুলি
FirebaseException বেস ক্লাস এখন বেশ কিছু নতুন বৈশিষ্ট্য প্রকাশ করে:
-
ErrorCode getErrorCode(): ব্যতিক্রমের সাথে সম্পর্কিত প্ল্যাটফর্ম ত্রুটি কোডটি ফেরত পাঠায়।FirebaseExceptionএর প্রতিটি উদাহরণে একটি নন-নাল প্ল্যাটফর্ম ত্রুটি কোড থাকার নিশ্চয়তা রয়েছে। সম্ভাব্য প্ল্যাটফর্ম ত্রুটি কোডগুলিকে একটি নতুন enum টাইপErrorCodeহিসাবে সংজ্ঞায়িত করা হয়। -
IncomingHttpResponse getHttpResponse(): ব্যতিক্রমের সাথে সম্পর্কিত HTTP প্রতিক্রিয়া প্রদান করে। যদি ব্যতিক্রমটি ব্যাকএন্ড HTTP প্রতিক্রিয়া ব্যতীত অন্য কোনও কারণে ঘটে থাকে তবে এটি null হতে পারে।
আগের মতোই, 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 API-গুলি (উদাহরণস্বরূপ, ApiFuture ফেরত পাঠানোর পদ্ধতি) একটি ExecutionException সাথে ব্যর্থ হতে পারে যা একটি FirebaseMessagingException মোড়ানো। Authentication -specific ত্রুটি কোডগুলি নতুন 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 এর অতিরিক্ত। আপনি প্রয়োজনে ত্রুটি হ্যান্ডলিং লজিক প্রয়োগ করতে পারেন যা উভয় ত্রুটি কোড পরিদর্শন করে।
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();