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