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

Authentication yöntemlerindeki tamamlama geri çağırması, NSError nil değil, bir hata oluştu. Uygun hata işleme bölümüne göndermek için mantığınıza dahil etmek, hata kodunu yaygın hatalara karşı kontrol edin ve yönteme özgü hatalar aşağıda listelenmiştir.

Bazı hatalar belirli kullanıcı işlemleriyle çözülebilir, örneğin: FIRAuthErrorCodeUserTokenExpired, kullanıcının oturum açarak çözülebilir ve FIRAuthErrorCodeWrongPassword kullanıcıdan gerekir.

FIRAuthErrorCodeNetworkError veya FIRAuthErrorCodeTooManyRequests, başarısız bir işlem aynı öğeyle yeniden deneniyor argümanları hiçbir zaman başarılı olmaz. İşlemin yapılıp yapılmadığı konusunda varsayımda bulunmayın. sunucu tarafında geçerlilik kazandı.

Hataları araştırırken veya günlüğe kaydederken userInfo sözlüğünü inceleyin. FIRAuthErrorNameKey, platformlar arası şöyle bir hata adı dizesi içeriyor: hatanın tanımlanmasında kullanılır. NSLocalizedDescriptionKey, hatanın açıklamasını içeriyor. Bu açıklama kullanıcıya değil, geliştiriciye yöneliktir. NSUnderlyingErrorKey, hataya neden olan temel hatayı içeriyor soru işaretiyle karşı karşıya kalabilirsiniz.

Yukarıda listelenen ana alanlara ek olarak Hataları teşhis ederken yararlı bulabileceğiniz userInfo sözlük.

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ının uygulamanızın paket kimliğinin beyaz listeye alınıp alınmadığı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 Yetkilendirme 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 Yetkilendirme 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 "Her e-posta adresi için bir hesap" ayarı, Firebase konsolunda, Authentication ayarları altından etkinleştirilir.
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 Yetkilendirme 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. Firebase konsolunun Authentication bölümünde bunları 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 Yetkilendirme 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 "Her e-posta adresi için bir hesap" ayarı, Firebase konsolunda, Authentication ayarları altından etkinleştirilir.
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 Yetkilendirme bölümünden etkinleştirebilirsiniz.

Bu yöntem ayrıca updateEmail:completion: ve FIRUser tarihinde updatePassword:completion:.

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üncelleme, 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.