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