يقدّم الإصدار 7.0.0 من حزمة تطوير البرامج (SDK) للمشرف في Firebase لنظام Java بعض التغيُّرات العميقة في واجهة برمجة التطبيقات. في الأساس، تتألف تغييرات واجهة برمجة التطبيقات في هذا الإصدار من إضافات و تحسينات في معالجة الأخطاء في Authentication وFCM.
التغييرات العامة في معالجة الأخطاء
FirebaseException
تعرض الآن فئة base عدة سمات جديدة:
-
ErrorCode getErrorCode()
: تعرِض هذه السمة رمز خطأ المنصة المرتبط بالاستثناء. نضمن أنّ كل مثيل منFirebaseException
يحتوي على رمز خطأ من النظام الأساسي غير صفري. يتم تعريف رموز أخطاء المنصة المحتمَلة كنوع جديد من التعدادErrorCode
. -
IncomingHttpResponse getHttpResponse()
: لعرض استجابة HTTP المرتبطة بالاستثناء قد يكون هذا الحقل فارغًا إذا كان سبب الاستثناء غير استجابة HTTP في الخلفية.
كما في السابق، يتم اشتقاق معظم أنواع الاستثناءات الأخرى المحدّدة في حزمة SDK (مثل
FirebaseAuthException
وFirebaseMessagingException
) من الدرجة الأساسية
FirebaseException
.
تغييرات في معالجة أخطاء المصادقة
قد تُعرِض جميع واجهات برمجة التطبيقات في فئة FirebaseAuth
حالات تتعلّق بالخطأ
FirebaseAuthException
. قد تفشل واجهات برمجة التطبيقات غير المتزامنة (مثل الطرق التي تُرجع ApiFuture
) مع ExecutionException
التي تلف FirebaseAuthException
. يتم تحديد رموز الخطأ الخاصة بـ Auth بشكل علني في
نوع القائمة المحدّدة مسبقًا الجديد AuthErrorCode
.
الإصدارات السابقة (<= الإصدار 6.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");
}
}
الآن (>= الإصدار 7.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
.
الإصدارات السابقة (<= الإصدار 6.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");
}
}
الآن (>= الإصدار 7.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
المكتسَب من النوع dasarFirebaseException
. يمكنك تنفيذ منطق معالجة الأخطاء الذي
يفحص كلا رمزَي الخطأ إذا لزم الأمر.
Authentication المطالبات المخصّصة
تمت إزالة الطريقة FirebaseAuth.setCustomClaims()
التي تم إيقافها نهائيًا. استخدِم
FirebaseAuth.setCustomUserClaims()
بدلاً من ذلك.
الإصدارات السابقة (<= الإصدار 6.15.0)
FirebaseAuth.getInstance().setCustomClaims(uid, claims);
الآن (>= الإصدار 7.0.0)
FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);
FCM منشئ الإشعارات
تمت إزالة وظائف الإنشاء المتوقّفة نهائيًا لفئة Notification
. استخدِم
صف Notification.Builder
لإنشاء نُسخ جديدة.
الإصدارات السابقة (<= الإصدار 6.15.0)
Notification notification = new Notification(title, body, url);
الآن (>= الإصدار 7.0.0)
Notification notification = Notification.builder()
.setTitle(title)
.setBody(body)
.setImage(url)
.build();