Java Admin SDK v7'ye geçiş yapın

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. Her FirebaseException ö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();