يتضمّن الإصدار 7.0.0 من حزمة تطوير البرامج (SDK) الخاصة بخدمة Firebase Admin لنظام Java بعض التغييرات المهمة في واجهة برمجة التطبيقات. تتضمّن التغييرات التي تم إجراؤها على واجهة برمجة التطبيقات في هذا الإصدار بشكل أساسي إضافات وتحسينات في معالجة الأخطاء في Authentication وFCM.
التغييرات العامة في معالجة الأخطاء
يعرض الصف الأساسي FirebaseException الآن عدة سمات جديدة:
-
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 الموروثة من النوع الأساسي FirebaseException. يمكنك تنفيذ منطق معالجة الأخطاء الذي يفحص كلا الرمزين إذا لزم الأمر.
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();