ย้ายไปยัง Java Admin SDK v7

Firebase Admin SDK สำหรับ Java เวอร์ชัน 7.0.0 นำเสนอการเปลี่ยนแปลงที่สำคัญบางประการใน API โดยพื้นฐานแล้ว การเปลี่ยนแปลง API ในรีลีสนี้เป็นการเพิ่มเติมและปรับปรุงการจัดการข้อผิดพลาดสำหรับ Authentication amd FCM

การเปลี่ยนแปลงการจัดการข้อผิดพลาดทั่วไป

ขณะนี้คลาสฐาน FirebaseException เปิดเผยคุณลักษณะใหม่หลายประการ:

  • ErrorCode getErrorCode() : ส่งคืนรหัสข้อผิดพลาดของแพลตฟอร์มที่เกี่ยวข้องกับข้อยกเว้น รับประกันว่าทุกอินสแตนซ์ของ FirebaseException จะมีรหัสข้อผิดพลาดของแพลตฟอร์มที่ไม่เป็นค่าว่าง รหัสข้อผิดพลาดของแพลตฟอร์มที่เป็นไปได้ถูกกำหนดให้เป็น ErrorCode ชนิด enum ใหม่
  • IncomingHttpResponse getHttpResponse() : ส่งคืนการตอบสนอง HTTP ที่เกี่ยวข้องกับข้อยกเว้น อาจเป็นโมฆะหากข้อยกเว้นเกิดจากสาเหตุอื่นที่ไม่ใช่การตอบสนอง HTTP ของแบ็กเอนด์

เช่นเดียวกับก่อนหน้านี้ ประเภทข้อยกเว้นอื่นๆ ส่วนใหญ่ที่กำหนดไว้ใน SDK (เช่น FirebaseAuthException , FirebaseMessagingException ) ได้มาจากคลาสพื้นฐาน FirebaseException

การเปลี่ยนแปลงการจัดการข้อผิดพลาดในการตรวจสอบสิทธิ์

API ทั้งหมดในคลาส FirebaseAuth อาจส่งอินสแตนซ์ของ FirebaseAuthException Async API (เช่น วิธีการส่งคืน ApiFuture ) อาจล้มเหลวด้วย ExecutionException ที่ล้อม FirebaseAuthException รหัสข้อผิดพลาดเฉพาะ Auth ถูกกำหนดต่อสาธารณะใน AuthErrorCode ประเภท enum ใหม่

ก่อน (<= 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");
  }
}

ตอนนี้ (>= v7.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

API ทั้งหมดในคลาส FirebaseMessaging อาจส่งอินสแตนซ์ของ FirebaseMessagingException Async APIs (เช่น วิธีการส่งคืน ApiFuture ) อาจล้มเหลวด้วย ExecutionException ที่ล้อม FirebaseMessagingException รหัสข้อผิดพลาดเฉพาะการรับรองความถูกต้องถูกกำหนดต่อสาธารณะในชนิด enum ใหม่ MessagingErrorCode

ก่อน (<= v6.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");
  }
}

ตอนนี้ (>= v7.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 พื้นฐาน คุณสามารถใช้ตรรกะการจัดการข้อผิดพลาดที่จะตรวจสอบรหัสข้อผิดพลาดทั้งสองได้หากจำเป็น

การอ้างสิทธิ์ที่กำหนดเองในการตรวจสอบสิทธิ์

เมธอด FirebaseAuth.setCustomClaims() ที่เลิกใช้งานแล้วได้ถูกลบออกแล้ว ใช้ FirebaseAuth.setCustomUserClaims() แทน

ก่อน (<= v6.15.0)

FirebaseAuth.getInstance().setCustomClaims(uid, claims);

ตอนนี้ (>= v7.0.0)

FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);

ตัวสร้างการแจ้งเตือน FCM

ตัวสร้างที่เลิกใช้แล้วของคลาส Notification ได้ถูกลบออกแล้ว ใช้คลาส Notification.Builder เพื่อสร้างอินสแตนซ์ใหม่

ก่อน (<= v6.15.0)

Notification notification = new Notification(title, body, url);

ตอนนี้ (>= v7.0.0)

Notification notification = Notification.builder()
  .setTitle(title)
  .setBody(body)
  .setImage(url)
  .build();