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

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

Bazı hatalar belirli kullanıcı işlemleriyle çözülebilir. Örneğin, FIRAuthErrorCodeUserTokenExpired kullanıcının tekrar oturum açarak çözmesi ve FIRAuthErrorCodeWrongPassword kullanıcıdan doğru şifreyi girmesini isteyerek çözülebilir.

FIRAuthErrorCodeNetworkError veya FIRAuthErrorCodeTooManyRequests durumları hariç, başarısız bir işlemi aynı bağımsız değişkenlerle yeniden denemek hiçbir zaman başarılı olmaz. İşlemin sunucu tarafında gerçekleşip gerçekleşmediğine dair 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 bir platformlar arası hata adı dizesi içerir. NSLocalizedDescriptionKey, hatanın açıklamasını içeriyor. Bu açıklama kullanıcıya değil, geliştiriciye yöneliktir. Temel bir hata varsa NSUnderlyingErrorKey, söz konusu hataya neden olan temel hatayı içerir.

userInfo sözlüğünde, yukarıda listelenen ana alanlara ek olarak hataları teşhis ederken faydalı bulabileceğiniz başka alanlar da olabilir.

Tüm API yöntemlerinde sık karşılaşılan hata kodları

Kod Anlamı
FIRAuthErrorCodeNetworkError İşlem sırasında bir ağ hatası oluştuğunu belirtir.
FIRAuthErrorCodeUserNotFound Kullanıcı hesabının bulunamadığını gösterir. Bunun nedeni, kullanıcı hesabının silinmiş olması olabilir.
FIRAuthErrorCodeUserTokenExpired Geçerli kullanıcı jetonunun süresinin dolduğunu belirtir. Ö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 yapıldıktan sonra isteğin engellendiğini belirtir. Bir süre sonra tekrar deneyin.
FIRAuthErrorCodeInvalidAPIKey Uygulamanın geçersiz bir API anahtarıyla yapılandırıldığını belirtir.
FIRAuthErrorCodeAppNotAuthorized Uygulamanın, sağlanan API Anahtarı ile Firebase Authentication'ı kullanma yetkisinin olmadığını belirtir. Google API Konsolu'na gidin ve kimlik bilgileri sekmesinde kullandığınız API anahtarında uygulamanızın paket kimliğinin beyaz listeye alınmış olup olmadığını kontrol edin.
FIRAuthErrorCodeKeychainError Anahtar zincirine erişilirken bir hata oluştuğunu belirtir. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanları, karşılaşılan hatayla ilgili daha fazla bilgi içerir.
FIRAuthErrorCodeInternalError Dahili bir hata oluştuğunu belirtir. Lütfen tüm NSError nesnesiyle birlikte hatayı bildirin.

Yönteme özel hata kodları

FIRAuth

receiveProvidersForEmail:complete:

Kod Anlamı
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirilmiş olduğunu belirtir.

signInWithEmail:sifre:tamamlama:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed E-posta ve şifre hesaplarının etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Auth bölümünden etkinleştirebilirsiniz.
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirilmiş olduğunu belirtir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını belirtir.
FIRAuthErrorCodeWrongPassword Kullanıcının yanlış bir şifreyle oturum açma girişiminde bulunduğunu belirtir.

signInWithCredential:complete:

Kod Anlamı
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu belirtir. Bu durum, kodun süresi dolmuş veya hatalı biçimlendirilmiş olabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential türündeyse e-posta adresinin hatalı olduğunu belirtir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisinin temsil ettiği kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Auth bölümünden etkinleştirebilirsiniz.
FIRAuthErrorCodeEmailAlreadyInUse Kimlik bilgisi tarafından onaylanan e-postanın (ör. Facebook erişim jetonundaki e-posta) bu oturum açma yöntemiyle kimliği doğrulanamayan mevcut bir hesap tarafından zaten kullanıldığını belirtir. Bu kullanıcının e-postasını almak için fetchProvidersForEmail numaralı telefonu arayın ve ardından döndürülen oturum açma sağlayıcılarından herhangi biriyle oturum açmasını isteyin. Bu hata yalnızca, Firebase konsolunda, Kimlik doğrulama ayarları altında "E-posta adresi başına bir hesap" ayarı etkinleştirilmişse verilir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını belirtir.
FIRAuthErrorCodeWrongPassword Kimlik bilgisi EmailPasswordAuthCredential türündeyse, kullanıcının yanlış bir şifreyle oturum açma girişiminde bulunduğunu belirtir.

signInAnonymouslyWithTamamlandı:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed Anonim hesapların etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Auth bölümünden etkinleştirebilirsiniz.

signInWithCustomToken:tamamlanma:

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 belirtir.

createUserWithEmail:password:complete:

Kod Anlamı
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirilmiş olduğunu belirtir.
FIRAuthErrorCodeEmailAlreadyInUse Kaydolma girişiminde kullanılan e-posta adresinin zaten mevcut olduğunu belirtir. Bu gibi kullanıcıların hangi oturum açma mekanizmalarını kullandığını kontrol etmek için fetchProvidersForEmail numaralı telefonu arayın ve kullanıcıdan bunlardan biriyle oturum açmasını isteyin.
FIRAuthErrorCodeOperationNotAllowed E-posta ve şifre hesaplarının etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Kimlik Doğrulama bölümünde etkinleştirebilirsiniz.
FIRAuthErrorCodeWeakPassword Çok zayıf olarak kabul edilen bir şifre ayarlama girişimini gösterir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı açıklama içerir.

çıkış:

Kod Anlamı
FIRAuthErrorCodeKeychainError Anahtar zincirine erişilirken bir hata oluştuğu belirtildi. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanları, karşılaşılan hatayla ilgili daha fazla bilgi içerir.

FIRUser

FIRUser işlemleri için sık karşılaşılan hatalar

Kod Anlamı
FIRAuthErrorCodeInvalidUserToken Oturum açmış kullanıcının, oturum bilgilerini içeren yenileme jetonunun geçersiz olduğunu belirtir. Kullanıcıdan bu cihazda tekrar oturum açmasını istemeniz gerekir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını ve Firebase konsolundaki Kullanıcılar panelinden tekrar etkinleştirilene kadar kullanılamayacağını belirtir.

reauthenticateWithCredential:complete:

Kod Anlamı
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu belirtir. Bu durum, kodun süresi dolmuş veya hatalı biçimlendirilmiş olabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential türündeyse e-posta adresinin hatalı olduğunu belirtir.
FIRAuthErrorCodeWrongPassword Kimlik bilgileri EmailPasswordAuthCredential türündeyse, kullanıcının yanlış bir şifreyle yeniden kimlik doğrulama girişiminde bulunduğunu belirtir.
FIRAuthErrorCodeUserMismatch Geçerli kullanıcı olmayan bir kullanıcıyla yeniden kimlik doğrulama girişiminde bulunulduğunu gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisinin temsil ettiği kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Auth bölümünden etkinleştirebilirsiniz.
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ği yeniden doğrulanamayan e-posta adresinin zaten kullanıldığını belirtir. Bu kullanıcının e-postasını almak için fetchProvidersForEmail numaralı telefonu arayın ve ardından döndürülen oturum açma sağlayıcılarından herhangi biriyle oturum açmasını isteyin. Bu hata yalnızca, Firebase konsolunda, Kimlik doğrulama ayarları altında "E-posta adresi başına bir hesap" ayarı etkinleştirilmişse verilir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını belirtir.

güncellemeE-postası:tamamlama:

Kod Anlamı
FIRAuthErrorCodeEmailAlreadyInUse E-posta adresinin başka bir hesap tarafından zaten kullanıldığını belirtir.
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirilmiş olduğunu belirtir.
FIRAuthErrorCodeRequiresRecentLogin Bir kullanıcının e-postasının güncellenmesi, güvenlik açısından hassas bir işlemdir ve kullanıcının kısa süre önce giriş yapmasını gerektirir. Bu hata, kullanıcının yakın zamanda yeterince oturum açmadığını gösterir. Sorunu çözmek için FIRUser üzerinde reauthenticateWithCredential:completion: komutunu çağırarak kullanıcının kimliğini yeniden doğrulayın.

güncellemesifresi:tamamlanma:

Kod Anlamı
FIRAuthErrorCodeOperationNotAllowed Yöneticinin, belirtilen kimlik sağlayıcıyla oturum açmayı devre dışı bıraktığını belirtir.
FIRAuthErrorCodeRequiresRecentLogin Kullanıcı şifresinin güncellenmesi, güvenlik açısından hassas bir işlemdir ve kullanıcının yakın zamanda giriş yapmasını gerektirir. Bu hata, kullanıcının yakın zamanda yeterince oturum açmadığını gösterir. Sorunu çözmek için FIRUser üzerinde reauthenticateWithCredential:completion: komutunu çağırarak kullanıcının kimliğini yeniden doğrulayın.
FIRAuthErrorCodeWeakPassword Çok zayıf olarak kabul edilen bir şifre ayarlama girişimini gösterir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı açıklama içerir.

linkWithCredential:complete:

Kod Anlamı
FIRAuthErrorCodeProviderAlreadyLinked Bu hesaba zaten bağlı olan türdeki sağlayıcıyı bağlama girişimini gösterir.
FIRAuthErrorCodeCredentialAlreadyInUse Farklı bir Firebase hesabına zaten bağlanmış bir kimlik bilgisiyle bağlantı kurma girişimini gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisinin temsil ettiği kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini belirtir. Bunları Firebase konsolunun Auth bölümünden etkinleştirebilirsiniz.

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

linkFromProvider:complete:

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 güncellemesi, kullanıcının yakın zamanda giriş yapmasını gerektiren güvenlik açısından hassas bir işlemdir. Bu hata, kullanıcının yakın zamanda yeterince oturum açmadığını gösterir. Sorunu çözmek için FIRUser üzerinde reauthenticateWithCredential:completion: komutunu çağırarak kullanıcının kimliğini yeniden doğrulayın.

sendEmailDoğrulamaWithTamamlandı:

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

deleteWithTamamlandı:

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