يقدّم الإصدار 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
. يتم تحديد رموز الأخطاء المتعلّقة بالأمان بشكل علني في
نوع القائمة المحدّدة مسبقًا الجديد 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");
}
}
الآن (>= الإصدار 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);
Now (>= v7.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();