Firebase Apple Platforms Kimlik Doğrulama Hatalarını Giderme

Authentication yöntemlerindeki tamamlama geri çağırması, boş olmayan bir NSError bağımsız değişkeni alırsa hata oluşmuştur. Üretim kodunuzda uygun hata işleme mantığına göndermek için hata kodunu aşağıdaki yaygın hatalara ve yönteme özgü hatalara göre kontrol edin.

Bazı hatalar belirli kullanıcı işlemleriyle çözülebilir. Örneğin, FIRAuthErrorCodeUserTokenExpired hatası kullanıcının tekrar oturum açmasıyla, FIRAuthErrorCodeWrongPassword hatası ise kullanıcının doğru şifreyi girmesiyle çözülebilir.

FIRAuthErrorCodeNetworkError veya FIRAuthErrorCodeTooManyRequests durumları hariç olmak üzere, başarısız olan bir işlemi aynı bağımsız değişkenlerle yeniden denemek hiçbir zaman başarılı olmaz. İşlemin sunucu tarafında etkili olup olmadığı konusunda herhangi bir varsayımda bulunmayın.

Hataları araştırırken veya günlüğe kaydederken userInfo sözlüğünü inceleyin. FIRAuthErrorNameKey, hatayı tanımlamak için kullanılabilecek platformlar arası bir hata adı dizesi içerir. NSLocalizedDescriptionKey, hatanın açıklamasını içerir. Bu açıklama, kullanıcı için değil geliştirici için hazırlanmıştır. NSUnderlyingErrorKey, söz konusu hataya neden olan temel hatayı içerir (temel hata varsa).

Yukarıda listelenen ana alanlara ek olarak, hataları teşhis ederken yararlı bulabileceğiniz başka alanlar da userInfo sözlüğünde yer alabilir.

Tüm API yöntemlerinde ortak olan hata kodları

Kod Anlamı
FIRAuthErrorCodeNetworkError İşlem sırasında bir ağ hatası oluştuğunu gösterir.
FIRAuthErrorCodeUserNotFound Kullanıcı hesabının bulunamadığını gösterir. Bu durum, kullanıcı hesabının silinmesi halinde ortaya çıkabilir.
FIRAuthErrorCodeUserTokenExpired Mevcut kullanıcının jetonunun süresinin dolduğunu gösterir. Örneğin, kullanıcı başka bir cihazda hesap şifresini değiştirmiş olabilir. Kullanıcıdan bu cihazda tekrar oturum açmasını istemeniz gerekir.
FIRAuthErrorCodeTooManyRequests Arayan cihazdan Firebase Authentication sunucularına anormal sayıda istek gönderildikten sonra isteğin engellendiğini gösterir. Bir süre sonra tekrar deneyin.
FIRAuthErrorCodeInvalidAPIKey Uygulamanın geçersiz bir API anahtarıyla yapılandırıldığını gösterir.
FIRAuthErrorCodeAppNotAuthorized Uygulamanın, sağlanan API anahtarıyla Firebase Authentication'ı kullanmaya yetkili olmadığını gösterir. Google API Console'a gidip kimlik bilgileri sekmesinde, kullandığınız API anahtarının uygulamanızın paket kimliğiyle izin verilenler listesine eklendiğini kontrol edin.
FIRAuthErrorCodeKeychainError Anahtarlığa erişilirken bir hata oluştuğunu gösterir. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanlarında karşılaşılan hata hakkında daha fazla bilgi yer alır.
FIRAuthErrorCodeInternalError Dahili bir hata oluştuğunu gösterir. Lütfen NSError nesnesinin tamamıyla birlikte hatayı bildirin.

Yönteme özgü hata kodları

FIRAuth

fetchProvidersForEmail:completion:

Kod Anlamı
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı olduğunu gösterir.

signInWithEmail:password:completion:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed E-posta ve şifre hesaplarının etkin olmadığını gösterir. Bu ayarları Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama > Oturum açma yöntemi sekmesine gidin).
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı olduğunu gösterir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı olduğunu gösterir.
FIRAuthErrorCodeWrongPassword Kullanıcının yanlış şifreyle oturum açmaya çalıştığını gösterir.

signInWithCredential:completion:

Kod Anlamı
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu gösterir. Bu durum, sertifikanın süresinin dolmasından veya hatalı olmasından kaynaklanabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential türündeyse e-posta adresinin hatalı olduğunu belirtir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisiyle temsil edilen kimlik sağlayıcısı olan hesapların etkinleştirilmediğini gösterir. Bu ayarları Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama > Oturum açma yöntemi sekmesine gidin).
FIRAuthErrorCodeEmailAlreadyInUse Kimlik bilgisi tarafından onaylanan e-postanın (ör. Facebook erişim jetonundaki e-posta) mevcut bir hesap tarafından zaten kullanıldığını ve bu oturum açma yöntemiyle kimliğinin doğrulanamadığını gösterir. Bu kullanıcının e-postası için fetchProvidersForEmail işlevini çağırın ve ardından döndürülen oturum açma sağlayıcılarından biriyle oturum açmasını isteyin. Bu hata yalnızca Firebase konsolunda "E-posta adresi başına bir hesap" ayarı etkinleştirilmişse gösterilir (Güvenlik > Kimlik Doğrulama > Ayarlar sekmesine gidin).
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı olduğunu gösterir.
FIRAuthErrorCodeWrongPassword Kimlik bilgisi EmailPasswordAuthCredential türündeyse kullanıcının yanlış şifreyle oturum açmaya çalıştığını gösterir.

signInAnonymouslyWithCompletion:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed Anonim hesapların etkin olmadığını gösterir. Bu ayarları Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama > Oturum açma yöntemi sekmesine gidin).

signInWithCustomToken:completion:

Kod Anlamı
FIRAuthErrorCodeInvalidCustomToken Özel jetonla ilgili bir doğrulama hatası olduğunu gösterir.
FIRAuthErrorCodeCustomTokenMismatch Hizmet hesabının ve API anahtarının farklı projelere ait olduğunu gösterir.

createUserWithEmail:password:completion:

Kod Anlamı
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı olduğunu gösterir.
FIRAuthErrorCodeEmailAlreadyInUse Kaydolma denemesinde kullanılan e-posta adresinin zaten mevcut olduğunu gösterir. Kullanıcının hangi oturum açma mekanizmalarını kullandığını kontrol etmek için fetchProvidersForEmail ile iletişime geçin ve kullanıcıyı bu mekanizmalardan biriyle oturum açmaya yönlendirin.
FIRAuthErrorCodeOperationNotAllowed E-posta ve şifre hesaplarının etkin olmadığını gösterir. Bu ayarları Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama > Oturum açma yöntemi sekmesine gidin).
FIRAuthErrorCodeWeakPassword Çok zayıf olduğu düşünülen bir şifre ayarlama girişimini gösterir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı bir açıklama içerir.

signOut:

Kod Anlamı
FIRAuthErrorCodeKeychainError Anahtar zincirine erişilirken bir hata oluştuğu belirtildi. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanlarında karşılaşılan hata hakkında daha fazla bilgi yer alır.

FIRUser

FIRUser işlemleriyle ilgili sık karşılaşılan hatalar

Kod Anlamı
FIRAuthErrorCodeInvalidUserToken Oturum bilgilerini içeren, giriş yapmış kullanıcının yenileme jetonunun geçersiz olduğunu gösterir. Kullanıcıdan bu cihazda tekrar oturum açmasını istemeniz gerekir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı olduğunu ve Firebase konsolunda tekrar etkinleştirilene kadar kullanılamayacağını gösterir (Güvenlik > Kimlik doğrulama > Kullanıcılar sekmesine gidin).

reauthenticateWithCredential:completion:

Kod Anlamı
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu gösterir. Bu durum, sertifikanın süresinin dolmasından veya hatalı olmasından kaynaklanabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential türündeyse e-posta adresinin hatalı olduğunu belirtir.
FIRAuthErrorCodeWrongPassword Kimlik bilgisi EmailPasswordAuthCredential türündeyse kullanıcının yanlış şifreyle yeniden kimlik doğrulama girişiminde bulunduğunu gösterir.
FIRAuthErrorCodeUserMismatch Mevcut kullanıcı olmayan bir kullanıcıyla yeniden kimlik doğrulama girişiminde bulunulduğunu gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisiyle temsil edilen kimlik sağlayıcısı olan hesapların etkinleştirilmediğini gösterir. Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama'ya gidin).
FIRAuthErrorCodeEmailAlreadyInUse Kimlik bilgisi tarafından onaylanan e-postanın (ör. Facebook erişim jetonundaki e-posta) mevcut bir hesap tarafından zaten kullanıldığını ve bu oturum açma yöntemiyle yeniden kimlik doğrulanamayacağını gösterir. Bu kullanıcının e-postası için fetchProvidersForEmail işlevini çağırın ve ardından döndürülen oturum açma sağlayıcılarından biriyle oturum açmasını isteyin. Bu hata yalnızca Firebase konsolunda "E-posta adresi başına bir hesap" ayarı etkinleştirilmişse gösterilir (Güvenlik > Kimlik Doğrulama > Ayarlar sekmesine gidin).
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı olduğunu gösterir.

updateEmail:completion:

Kod Anlamı
FIRAuthErrorCodeEmailAlreadyInUse E-postanın başka bir hesap tarafından zaten kullanıldığını gösterir.
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı olduğunu gösterir.
FIRAuthErrorCodeRequiresRecentLogin Kullanıcının e-posta adresini güncellemek, kullanıcının yakın zamanda giriş yapmasını gerektiren, güvenlikle ilgili hassas bir işlemdir. Bu hata, kullanıcının yeterince yakın bir zamanda oturum açmadığını gösterir. Sorunu çözmek için reauthenticateWithCredential:completion: üzerinde FIRUser çağırarak kullanıcının kimliğini yeniden doğrulayın.

updatePassword:completion:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed Yöneticinin, belirtilen kimlik sağlayıcıyla oturum açmayı devre dışı bıraktığını gösterir.
FIRAuthErrorCodeRequiresRecentLogin Kullanıcı şifresini güncellemek, kullanıcının yakın zamanda oturum açmasını gerektiren, güvenlikle ilgili hassas bir işlemdir. Bu hata, kullanıcının yeterince yakın bir zamanda oturum açmadığını gösterir. Sorunu çözmek için reauthenticateWithCredential:completion: üzerinde FIRUser çağırarak kullanıcının kimliğini yeniden doğrulayın.
FIRAuthErrorCodeWeakPassword Çok zayıf olduğu düşünülen bir şifre ayarlama girişimini gösterir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı bir açıklama içerir.

linkWithCredential:completion:

Kod Anlamı
FIRAuthErrorCodeProviderAlreadyLinked Bu hesaba zaten bağlı olan bir türdeki sağlayıcıyı bağlama girişimini gösterir.
FIRAuthErrorCodeCredentialAlreadyInUse Daha önce farklı bir Firebase hesabıyla bağlanmış bir kimlik bilgisiyle bağlantı oluşturma girişimi olduğunu gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisiyle temsil edilen kimlik sağlayıcısı olan hesapların etkinleştirilmediğini gösterir. Bu ayarları Firebase konsolunda etkinleştirin (Güvenlik > Kimlik doğrulama > Oturum açma yöntemi sekmesine gidin).

Bu yöntem, FIRUser üzerinde updateEmail:completion: ve updatePassword:completion: ile ilişkili hata kodları da döndürebilir.

unlinkFromProvider:completion:

Kod Anlamı
FIRAuthErrorCodeNoSuchProvider Hesaba bağlı olmayan bir sağlayıcının bağlantısını kaldırma girişimini gösterir.
FIRAuthErrorCodeRequiresRecentLogin E-posta adresini güncelleme, kullanıcının yakın zamanda giriş yapmasını gerektiren, güvenlikle ilgili hassas bir işlemdir. Bu hata, kullanıcının yeterince yakın bir zamanda oturum açmadığını gösterir. Sorunu çözmek için reauthenticateWithCredential:completion: üzerinde FIRUser çağırarak kullanıcının kimliğini yeniden doğrulayın.

sendEmailVerificationWithCompletion:

Kod Anlamı
FIRAuthErrorCodeUserNotFound Kullanıcı hesabının bulunamadığını gösterir.

deleteWithCompletion:

Kod Anlamı
FIRAuthErrorCodeRequiresRecentLogin Kullanıcı hesabının silinmesi, kullanıcının yakın zamanda giriş yapmasını gerektiren, güvenlikle ilgili hassas bir işlemdir. Bu hata, kullanıcının yeterince yakın bir zamanda oturum açmadığını gösterir. Sorunu çözmek için reauthenticateWithCredential:completion: üzerinde FIRUser çağırarak kullanıcının kimliğini yeniden doğrulayın.