نقل البيانات إلى الإصدار 7 من حزمة تطوير البرامج (SDK) لمشرف Java

يقدّم الإصدار 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();