ย้ายข้อมูลไปยัง Java Admin SDK v7

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

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

คลาสพื้นฐาน FirebaseException มีแอตทริบิวต์ใหม่หลายรายการดังนี้

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

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

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

API ทั้งหมดในคลาส FirebaseAuth อาจแสดงอินสแตนซ์ของ FirebaseAuthException API แบบไม่พร้อมกัน (เช่น เมธอดที่แสดง ApiFuture) อาจล้มเหลวด้วย ExecutionException ที่ครอบ FirebaseAuthException รหัสข้อผิดพลาดเฉพาะของการตรวจสอบสิทธิ์จะกำหนดไว้แบบสาธารณะในประเภท Enum ใหม่ 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 API แบบไม่พร้อมกัน (เช่น เมธอดที่แสดง ApiFuture) อาจล้มเหลวด้วย ExecutionException ที่ครอบ FirebaseMessagingException รหัสข้อผิดพลาดเฉพาะของ Authentication จะกำหนดไว้แบบสาธารณะ ในประเภท 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 ฐาน คุณสามารถใช้ตรรกะการจัดการข้อผิดพลาดที่ตรวจสอบรหัสข้อผิดพลาดทั้ง 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();