Java एडमिन SDK v7 पर माइग्रेट करें

Java के लिए Firebase Admin SDK के वर्शन 7.0.0 में, एपीआई में कुछ अहम बदलाव किए गए हैं. इस रिलीज़ में, एपीआई में किए गए मुख्य बदलाव, गड़बड़ी ठीक करने की सुविधा में किए गए सुधार और जोड़े गए नए फ़ीचर हैं Authentication और FCM.

गड़बड़ी ठीक करने की सुविधा में किए गए सामान्य बदलाव

FirebaseException बेस क्लास में अब कई नए एट्रिब्यूट शामिल हैं:

  • ErrorCode getErrorCode(): यह प्लैटफ़ॉर्म की गड़बड़ी का वह कोड दिखाता है जो अपवाद से जुड़ा है. FirebaseException के हर इंस्टेंस में, प्लैटफ़ॉर्म की गड़बड़ी का कोई न कोई कोड ज़रूर होता है. प्लैटफ़ॉर्म की गड़बड़ी के संभावित कोड, ErrorCode नाम के नए enum टाइप के तौर पर तय किए गए हैं.
  • IncomingHttpResponse getHttpResponse(): यह अपवाद से जुड़ा एचटीटीपी रिस्पॉन्स दिखाता है. अगर अपवाद, बैकएंड एचटीटीपी रिस्पॉन्स के अलावा किसी और वजह से हुआ है, तो यह शून्य हो सकता है.

पहले की तरह, एसडीके में तय किए गए अपवाद के ज़्यादातर टाइप (उदाहरण के लिए, FirebaseAuthException, FirebaseMessagingException), FirebaseException बेस क्लास से लिए गए हैं.

पुष्टि करने की सुविधा से जुड़ी गड़बड़ी ठीक करने की सुविधा में किए गए बदलाव

FirebaseAuth क्लास के सभी एपीआई, FirebaseAuthException के इंस्टेंस जनरेट कर सकते हैं. एसिंक्रोनस एपीआई (उदाहरण के लिए, ApiFuture दिखाने वाले तरीके), ExecutionException के साथ काम नहीं कर सकते. इसमें FirebaseAuthException शामिल होता है. पुष्टि करने की सुविधा से जुड़ी गड़बड़ी के कोड, सार्वजनिक तौर पर AuthErrorCode नाम के नए enum टाइप में तय किए गए हैं.

पहले (<= वर्शन 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 के अलावा है. ErrorCode, FirebaseException टाइप से लिया गया है. ज़रूरत पड़ने पर, गड़बड़ी ठीक करने की ऐसी लॉजिक लागू की जा सकती है जो गड़बड़ी के दोनों कोड की जांच करती है.

FCM गड़बड़ी ठीक करने की सुविधा में किए गए बदलाव

FirebaseMessaging क्लास के सभी एपीआई, FirebaseMessagingException के इंस्टेंस जनरेट कर सकते हैं. एसिंक्रोनस एपीआई (उदाहरण के लिए, ApiFuture दिखाने वाले तरीके), ExecutionException के साथ काम नहीं कर सकते. इसमें FirebaseMessagingException शामिल होता है. Authentication से जुड़े गड़बड़ी के कोड, सार्वजनिक तौर पर MessagingErrorCode नाम के नए enum टाइप में तय किए गए हैं.

पहले (<= वर्शन 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 के अलावा है. ErrorCode, base FirebaseException टाइप से लिया गया है. ज़रूरत पड़ने पर, गड़बड़ी ठीक करने की ऐसी लॉजिक लागू की जा सकती है जो गड़बड़ी के दोनों कोड की जांच करती है.

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();