Java के लिए Firebase Admin SDK के वर्शन 7.0.0 में, एपीआई में कुछ अहम बदलाव किए गए हैं. इस रिलीज़ में एपीआई में किए गए बदलावों में, मुख्य तौर पर Authentication और FCM के लिए गड़बड़ी ठीक करने की सुविधा में सुधार और नई सुविधाएं शामिल हैं.
गड़बड़ी ठीक करने की सुविधा में सामान्य बदलाव
FirebaseException बेस क्लास में अब कई नए एट्रिब्यूट दिखते हैं:
ErrorCode getErrorCode(): यह अपवाद से जुड़े प्लैटफ़ॉर्म की गड़बड़ी का कोड दिखाता है.FirebaseExceptionके हर इंस्टेंस में, प्लैटफ़ॉर्म से जुड़ी गड़बड़ी का कोड मौजूद होता है. प्लैटफ़ॉर्म से जुड़ी गड़बड़ी के संभावित कोड, नए enum टाइपErrorCodeके तौर पर तय किए गए हैं.IncomingHttpResponse getHttpResponse(): अपवाद से जुड़ा एचटीटीपी रिस्पॉन्स दिखाता है. अगर अपवाद, बैकएंड एचटीटीपी रिस्पॉन्स के अलावा किसी अन्य वजह से हुआ है, तो यह शून्य हो सकता है.
पहले की तरह, एसडीके में तय किए गए ज़्यादातर अन्य अपवाद टाइप (उदाहरण के लिए, FirebaseAuthException, FirebaseMessagingException), FirebaseException बेस क्लास से लिए गए हैं.
पुष्टि करने से जुड़ी गड़बड़ी को मैनेज करने के तरीके में बदलाव
FirebaseAuth क्लास के सभी एपीआई, FirebaseAuthException के इंस्टेंस थ्रो कर सकते हैं. एसिंक्रोनस एपीआई (उदाहरण के लिए, 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, बेस FirebaseException टाइप से इनहेरिट किए गए ErrorCode के अलावा है. गड़बड़ी को ठीक करने वाला लॉजिक लागू किया जा सकता है. इससे, ज़रूरत पड़ने पर गड़बड़ी के दोनों कोड की जांच की जा सकती है.
गड़बड़ी ठीक करने से जुड़े FCM बदलाव
FirebaseMessaging क्लास के सभी एपीआई, FirebaseMessagingException के इंस्टेंस थ्रो कर सकते हैं. एसिंक्रोनस एपीआई (उदाहरण के लिए, ApiFuture दिखाने वाले तरीके) FirebaseMessagingException को रैप करने वाले ExecutionException के साथ काम नहीं कर सकते. 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, बेस FirebaseException टाइप से इनहेरिट किए गए ErrorCode के अलावा है. गड़बड़ी को ठीक करने वाला ऐसा लॉजिक लागू किया जा सकता है जो ज़रूरत पड़ने पर, गड़बड़ी के दोनों कोड की जांच करता हो.
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();