Java için Firebase Admin SDK'nın 7.0.0 sürümü, API'de bazı önemli değişiklikler getiriyor. Bu sürümdeki API değişiklikleri öncelikle Kimlik Doğrulama ve FCM için hata işlemeye yönelik eklemeler ve iyileştirmelerdir.
Genel hata işleme değişiklikleri
FirebaseException
temel sınıfı artık birkaç yeni özelliği kullanıma sunuyor:
-
ErrorCode getErrorCode()
: İstisnayla ilişkili platform hata kodunu döndürür. HerFirebaseException
örneğinin boş olmayan bir platform hata koduna sahip olacağı garanti edilir. Olası platform hata kodları yeni bir numaralandırma türüErrorCode
olarak tanımlanır. -
IncomingHttpResponse getHttpResponse()
: İstisnayla ilişkili HTTP yanıtını döndürür. İstisnanın arka uç HTTP yanıtı dışındaki bir nedenden kaynaklanması durumunda null olabilir.
Daha önce olduğu gibi, SDK'da tanımlanan diğer istisna türlerinin çoğu (örneğin, FirebaseAuthException
, FirebaseMessagingException
) FirebaseException
temel sınıfından türetilmiştir.
Kimlik doğrulama hatası işleme değişiklikleri
FirebaseAuth
sınıfındaki tüm API'ler FirebaseAuthException
örneklerini oluşturabilir. Zaman uyumsuz API'ler (örneğin, ApiFuture
döndüren yöntemler), FirebaseAuthException
öğesini saran bir ExecutionException
ile başarısız olabilir. Auth'a özgü hata kodları, yeni numaralandırma türü AuthErrorCode
genel olarak tanımlanır.
Önce (<= 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");
}
}
Şimdi (>= 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
, temel FirebaseException
türünden devralınan ErrorCode
ek olarak bulunur. Gerekirse her iki hata kodunu da denetleyen hata işleme mantığını uygulayabilirsiniz.
FCM hata işleme değişiklikleri
FirebaseMessaging
sınıfındaki tüm API'ler FirebaseMessagingException
örneklerini oluşturabilir. Zaman uyumsuz API'ler (örneğin, ApiFuture
döndüren yöntemler), FirebaseMessagingException
öğesini saran bir ExecutionException
ile başarısız olabilir. Kimlik doğrulamasına özgü hata kodları, MessagingErrorCode
yeni numaralandırma türünde genel olarak tanımlanır.
Önce (<= 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");
}
}
Şimdi (>= 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
temel FirebaseException
türünden devralınan ErrorCode
ek olarak bulunur. Gerekirse her iki hata kodunu da denetleyen hata işleme mantığını uygulayabilirsiniz.
Kimlik doğrulama özel talepleri
Kullanımdan kaldırılan FirebaseAuth.setCustomClaims()
yöntemi kaldırıldı. Bunun yerine FirebaseAuth.setCustomUserClaims()
öğesini kullanın.
Önce (<= v6.15.0)
FirebaseAuth.getInstance().setCustomClaims(uid, claims);
Şimdi (>= v7.0.0)
FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);
FCM bildirim oluşturucuları
Notification
sınıfının kullanımdan kaldırılan oluşturucuları kaldırıldı. Yeni örnekler oluşturmak için Notification.Builder
sınıfını kullanın.
Önce (<= v6.15.0)
Notification notification = new Notification(title, body, url);
Şimdi (>= v7.0.0)
Notification notification = Notification.builder()
.setTitle(title)
.setBody(body)
.setImage(url)
.build();