نسخه ۷.۰.۰ از Firebase Admin SDK برای Java برخیاز تغییرات مهم را در میانای برنامهسازی کاربردی معرفی میکند. در درجه اول، تغییرات API در این نسخه پخش شامل افزودن و بهبود در رسیدگی به خطا برای Authentication و FCM است.
تغییرات رسیدگی به خطای عمومی
کلاس پایه FirebaseException اکنون چندین مشخصه جدید را نشان میدهد:
ErrorCode getErrorCode(): کد خطای پلاتفرم مرتبط با استثنا را برمیگرداند. تضمین میشود که هر نمونه ازFirebaseExceptionدارای کد خطای پلاتفرم غیرتهی باشد. کدهای خطای احتمالی پلاتفرم بهعنوان نوع شمارشی جدیدErrorCodeتعریف شدهاند.IncomingHttpResponse getHttpResponse(): پاسخهای HTTP مرتبط با استثنا را برمیگرداند. اگر استثنا بهدلیلی غیراز پاسخهای HTTP باطن ایجاد شده باشد، ممکن است تهی باشد.
مانند قبل، اکثر انواع استثناهای دیگر تعریفشده در کیت توسعه نرمافزار (برای مثال،
FirebaseAuthException، FirebaseMessagingException) از کلاس پایه
FirebaseException مشتق شدهاند.
خطای اصالتسنجی در رسیدگی به تغییرات
همه میاناهای برنامهسازی کاربردی در کلاس FirebaseAuth ممکن است نمونههایی از
FirebaseAuthException را ایجاد کنند. میاناهای برنامهسازی کاربردی ناهمگام (برای مثال، روشهایی که
ApiFuture را برمیگردانند) ممکن است با ExecutionException که
FirebaseAuthException را دربرمیگیرد ناموفق شوند. کدهای خطای مختص Auth بهطور عمومی در
نوع شمارشی جدید AuthErrorCode تعریف شدهاند.
قبلاز (نسخه ۶.۱۵.۰ یا قدیمیتر)
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 علاوهبر ErrorCode است که از نوع پایه FirebaseException
بهارث رسیده است. درصورت لزوم، میتوانید منطق رسیدگی به خطا را که هر دو کد خطا را بررسی میکند پیادهسازی کنید.
FCM تغییر در مدیریت کردن خطا
همه میاناهای برنامهسازی کاربردی در کلاس FirebaseMessaging ممکن است نمونههایی از
FirebaseMessagingException را ایجاد کنند. میاناهای برنامهسازی کاربردی ناهمگام (برای مثال، روشهایی که
ApiFuture را برمیگردانند) ممکن است با ExecutionException که
FirebaseMessagingException را دربرمیگیرد ناموفق شوند. کدهای خطای مختص Authentication بهطور عمومی
در نوع شمارشی جدید MessagingErrorCode تعریف شدهاند.
قبلاز (نسخه ۶.۱۵.۰ یا قدیمیتر)
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 علاوهبر ErrorCode است که از نوع پایه FirebaseException به ارث رسیده است. میتوانید منطق رسیدگی به خطا را پیادهسازی کنید که
درصورت لزوم هر دو کد خطا را بررسی میکند.
Authentication ادعای سفارشی
روش منسوخشده FirebaseAuth.setCustomClaims() برداشته شده است. درعوض از
FirebaseAuth.setCustomUserClaims() استفاده کنید.
قبلاز (نسخه ۶.۱۵.۰ و قدیمیتر)
FirebaseAuth.getInstance().setCustomClaims(uid, claims);
اکنون (>= v7.0.0)
FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);
FCM سازنده اعلان
سازندههای منسوخشده کلاس Notification برداشته شدهاند. از
کلاس Notification.Builder برای ایجاد نمونههای جدید استفاده کنید.
قبلاز (نسخه ۶.۱۵.۰ یا قدیمیتر)
Notification notification = new Notification(title, body, url);
اکنون (>= v7.0.0)
Notification notification = Notification.builder()
.setTitle(title)
.setBody(body)
.setImage(url)
.build();