Firebase Admin SDK สำหรับ Java เวอร์ชัน 7.0.0 มีการเปลี่ยนแปลงที่สำคัญ ใน API การเปลี่ยนแปลง API ในรุ่นนี้ส่วนใหญ่เป็นการเพิ่มและการปรับปรุงการจัดการข้อผิดพลาดสำหรับ Authentication และ FCM
การเปลี่ยนแปลงการจัดการข้อผิดพลาดทั่วไป
FirebaseException คลาสพื้นฐานจะแสดงแอตทริบิวต์ใหม่หลายรายการดังนี้
- ErrorCode getErrorCode(): แสดงรหัสข้อผิดพลาดของแพลตฟอร์มที่เชื่อมโยงกับข้อยกเว้น รับประกันว่าอินสแตนซ์ของ- FirebaseExceptionทุกรายการจะมีรหัสข้อผิดพลาดของแพลตฟอร์มที่ไม่ใช่ค่า Null รหัสข้อผิดพลาดของแพลตฟอร์มที่เป็นไปได้จะกำหนดเป็นประเภทการแจงนับใหม่- ErrorCode
- IncomingHttpResponse getHttpResponse(): แสดงการตอบกลับ HTTP ที่เชื่อมโยงกับข้อยกเว้น อาจเป็นค่า Null หากข้อยกเว้นเกิดจากสาเหตุอื่นที่ไม่ใช่การตอบกลับ HTTP ของแบ็กเอนด์
เช่นเดียวกับก่อนหน้านี้ ข้อยกเว้นประเภทอื่นๆ ส่วนใหญ่ที่กำหนดไว้ใน SDK (เช่น
FirebaseAuthException, FirebaseMessagingException) มาจากคลาสฐาน
FirebaseException
การเปลี่ยนแปลงการจัดการข้อผิดพลาดในการตรวจสอบสิทธิ์
API ทั้งหมดในคลาส FirebaseAuth อาจส่งอินสแตนซ์ของ
FirebaseAuthException Async API (เช่น เมธอดที่แสดงผล
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");
  }
}
ตอนนี้ (>= 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 คุณสามารถใช้ตรรกะการจัดการข้อผิดพลาดที่ตรวจสอบรหัสข้อผิดพลาดทั้ง 2 รายการได้หากจำเป็น
FCM การเปลี่ยนแปลงการจัดการข้อผิดพลาด
API ทั้งหมดในคลาส FirebaseMessaging อาจส่งอินสแตนซ์ของ
FirebaseMessagingException Async API (เช่น เมธอดที่แสดงผล
ApiFuture) อาจล้มเหลวโดยมี ExecutionException ที่ครอบ
FirebaseMessagingException Authenticationรหัสข้อผิดพลาดเฉพาะจะกําหนดไว้แบบสาธารณะ
ในประเภทการแจงนับใหม่ 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 พื้นฐาน คุณสามารถใช้ตรรกะการจัดการข้อผิดพลาดที่ตรวจสอบรหัสข้อผิดพลาดทั้ง 2 รายการได้หากจำเป็น
Authentication การอ้างสิทธิ์ที่กำหนดเอง
ระบบได้นำเมธอด 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();