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

जावा के लिए फायरबेस एडमिन एसडीके का संस्करण 7.0.0 एपीआई में कुछ महत्वपूर्ण बदलाव पेश करता है। मुख्य रूप से, इस रिलीज़ में एपीआई परिवर्तन प्रमाणीकरण एएमडी एफसीएम के लिए त्रुटि प्रबंधन में अतिरिक्त और सुधार हैं।

सामान्य त्रुटि प्रबंधन परिवर्तन

FirebaseException बेस क्लास अब कई नई विशेषताओं को उजागर करता है:

  • ErrorCode getErrorCode() : अपवाद से जुड़ा प्लेटफ़ॉर्म त्रुटि कोड लौटाता है। FirebaseException के प्रत्येक उदाहरण में एक गैर-शून्य प्लेटफ़ॉर्म त्रुटि कोड होने की गारंटी है। संभावित प्लेटफ़ॉर्म त्रुटि कोड को एक नए एनम प्रकार ErrorCode के रूप में परिभाषित किया गया है।
  • IncomingHttpResponse getHttpResponse() : अपवाद से संबंधित HTTP प्रतिक्रिया लौटाता है। यदि अपवाद बैकएंड HTTP प्रतिक्रिया के अलावा किसी अन्य कारण से हुआ तो यह शून्य हो सकता है।

पहले की तरह, SDK में परिभाषित अधिकांश अन्य अपवाद प्रकार (उदाहरण के लिए, FirebaseAuthException , FirebaseMessagingException ) FirebaseException बेस क्लास से प्राप्त होते हैं।

प्रामाणिक त्रुटि प्रबंधन परिवर्तन

FirebaseAuth वर्ग के सभी API 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 आधार FirebaseException प्रकार से प्राप्त ErrorCode के अतिरिक्त है। आप त्रुटि प्रबंधन तर्क लागू कर सकते हैं जो यदि आवश्यक हो तो दोनों त्रुटि कोड का निरीक्षण करता है।

एफसीएम त्रुटि प्रबंधन परिवर्तन

FirebaseMessaging क्लास के सभी एपीआई FirebaseMessagingException के इंस्टेंसेस को फेंक सकते हैं। Async API (उदाहरण के लिए, वे विधियाँ जो ApiFuture लौटाती हैं) एक ExecutionException के साथ विफल हो सकती हैं जो FirebaseMessagingException लपेटता है। प्रमाणीकरण-विशिष्ट त्रुटि कोड सार्वजनिक रूप से नए एनम प्रकार 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 आधार FirebaseException प्रकार से प्राप्त ErrorCode के अतिरिक्त है। आप त्रुटि प्रबंधन तर्क लागू कर सकते हैं जो यदि आवश्यक हो तो दोनों त्रुटि कोड का निरीक्षण करता है।

प्रमाणीकरण कस्टम दावे

अप्रचलित FirebaseAuth.setCustomClaims() पद्धति को हटा दिया गया है। इसके बजाय FirebaseAuth.setCustomUserClaims() का उपयोग करें।

पहले (<= v6.15.0)

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

अब (>=v7.0.0)

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

एफसीएम अधिसूचना निर्माता

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