了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Firebase Apple Platformları Yetkilendirme Hatalarını İşleyin

Kimlik Doğrulama yöntemlerindeki tamamlama geri çağrısı, sıfır olmayan bir NSError bağımsız değişkeni alırsa, bir hata oluştu. Üretim kodunuzdaki uygun hata işleme mantığına sevk etmek için, hata kodunu aşağıda listelenen yaygın hatalara ve yönteme özel hatalara karşı kontrol edin.

Bazı hatalar belirli kullanıcı eylemleriyle çözülebilir; örneğin, FIRAuthErrorCodeUserTokenExpired , kullanıcı yeniden oturum açarak ve FIRAuthErrorCodeWrongPassword , kullanıcıdan doğru parolayı girmesi istenerek çözülebilir.

FIRAuthErrorCodeNetworkError veya FIRAuthErrorCodeTooManyRequests durumu dışında, aynı argümanlarla başarısız bir işlemi yeniden denemek asla 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 userInfo sözlüğünü inceleyin. FIRAuthErrorNameKey , hatayı tanımlamak için kullanılabilecek bir platformlar arası hata adı dizesi içerir. NSLocalizedDescriptionKey , hatanın bir açıklamasını içerir. Bu açıklama kullanıcı için değil geliştirici içindir. NSUnderlyingErrorKey , temel alınan bir hata varsa, söz konusu hataya neden olan temel hatayı içerir.

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

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, kullanıcı hesabı silinmişse olabilir.
FIRAuthErrorCodeUserTokenExpired Geçerli 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 Kimlik Doğrulama sunucularına anormal sayıda istek yapıldıktan 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ı ile Firebase Kimlik Doğrulamasını kullanma yetkisi olmadığını belirtir. Google API Konsolu'na gidin ve kullandığınız API anahtarının, uygulamanızın paket kimliğinin beyaz listeye eklendiğini, kimlik bilgileri sekmesinin altında kontrol edin.
FIRAuthErrorCodeKeychainError Anahtar zincirine erişirken bir hata oluştuğunu gösterir. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanları, karşılaşılan hata hakkında daha fazla bilgi içerecektir.
FIRAuthErrorCodeInternalError Dahili bir hata oluştuğunu gösterir. Lütfen hatayı tüm NSError nesnesiyle bildirin.

Yönteme özel hata kodları

FIRAuth

fetchProvidersForEmail:tamamlama:

kod Anlam
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirildiğini gösterir.

signInWithEmail:şifre:tamamlama:

kod Anlam
FIRAuthErrorCodeOperationNotAllowed E-posta ve parola hesaplarının etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Yetkilendirme bölümünde etkinleştirin.
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirildiğini gösterir.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını gösterir.
FIRAuthErrorCodeWrongPassword Kullanıcının yanlış bir parola ile oturum açmayı denediğini gösterir.

signInWithCredential:tamamlama:

kod Anlam
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu gösterir. Bu, süresi dolmuşsa veya hatalı biçimlendirilmişse olabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential , e-posta adresinin hatalı biçimlendirildiğini gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisi tarafından temsil edilen kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Yetkilendirme bölümünde etkinleştirin.
FIRAuthErrorCodeEmailAlreadyInUse Kimlik bilgisi tarafından onaylanan e-postanın (örneğin bir Facebook erişim belirtecindeki e-posta), bu oturum açma yöntemiyle kimliği doğrulanamayan mevcut bir hesap tarafından zaten kullanıldığını gösterir. Bu kullanıcının e-postası için fetchProvidersForEmail 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ştirilirse atılır.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını gösterir.
FIRAuthErrorCodeWrongPassword Kimlik bilgisi EmailPasswordAuthCredential , kullanıcının yanlış bir parolayla oturum açmaya çalıştığını gösterir.

SignInAnonymouslyWithCompletion:

kod Anlam
FIRAuthErrorCodeOperationNotAllowed Anonim hesapların etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Yetkilendirme bölümünde etkinleştirin.

signInWithCustomToken:tamamlama:

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

createUserWithEmail:parola:tamamlama:

kod Anlam
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirildiğini gösterir.
FIRAuthErrorCodeEmailAlreadyInUse Kaydolmayı denemek için kullanılan e-postanın zaten var olduğunu gösterir. Bu kullanıcının hangi oturum açma mekanizmalarını kullandığını kontrol etmek için fetchProvidersForEmail arayın ve kullanıcıdan bunlardan biriyle oturum açmasını isteyin.
FIRAuthErrorCodeOperationNotAllowed E-posta ve parola hesaplarının etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Kimlik Doğrulama bölümünde etkinleştirin.
FIRAuthErrorCodeWeakPassword Çok zayıf olarak kabul edilen bir parola belirleme girişimini belirtir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı açıklama içerecektir.

oturumu Kapat:

kod Anlam
FIRAuthErrorCodeKeychainError Anahtarlığa erişirken bir hata oluştuğunu belirtti. NSError.userInfo sözlüğündeki NSLocalizedFailureReasonErrorKey ve NSUnderlyingErrorKey alanları, karşılaşılan hata hakkında daha fazla bilgi içerecektir.

FIRUser

FIRUser işlemleri için yaygın hatalar

kod Anlam
FIRAuthErrorCodeInvalidUserToken Oturum açmış kullanıcının oturum bilgilerini tutan yenileme belirtecinin geçersiz olduğunu gösterir. Kullanıcıdan bu cihazda tekrar oturum açmasını istemeniz gerekir.
FIRAuthErrorCodeUserDisabled Kullanıcı hesabının devre dışı bırakıldığını ve Firebase konsolundaki Kullanıcılar panelinden yeniden etkinleştirilene kadar artık kullanılamayacağını belirtir.

reauthenticateWithCredential:tamamlama:

kod Anlam
FIRAuthErrorCodeInvalidCredential Sağlanan kimlik bilgisinin geçersiz olduğunu gösterir. Bu, süresi dolmuşsa veya hatalı biçimlendirilmişse olabilir.
FIRAuthErrorCodeInvalidEmail Kimlik bilgisi EmailPasswordAuthCredential , e-posta adresinin hatalı biçimlendirildiğini gösterir.
FIRAuthErrorCodeWrongPassword Kimlik bilgisi EmailPasswordAuthCredential , kullanıcının yanlış bir parolayla yeniden kimlik doğrulama girişiminde bulunduğunu gösterir.
FIRAuthErrorCodeUserMismatch Geçerli kullanıcı olmayan bir kullanıcıyla yeniden kimlik doğrulama girişiminde bulunulduğunu gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisi tarafından temsil edilen kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Yetkilendirme bölümünde etkinleştirin.
FIRAuthErrorCodeEmailAlreadyInUse Kimlik bilgisi tarafından onaylanan e-postanın (örneğin bir Facebook erişim belirtecindeki e-posta), bu oturum açma yöntemiyle yeniden doğrulanamayan mevcut bir hesap tarafından zaten kullanıldığını gösterir. Bu kullanıcının e-postası için fetchProvidersForEmail 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ştirilirse atılır.
FIRAuthErrorCodeUserDisabled Kullanıcının hesabının devre dışı bırakıldığını gösterir.

updateEmail:tamamlama:

kod Anlam
FIRAuthErrorCodeEmailAlreadyInUse E-postanın zaten başka bir hesap tarafından kullanıldığını gösterir.
FIRAuthErrorCodeInvalidEmail E-posta adresinin hatalı biçimlendirildiğini gösterir.
FIRAuthErrorCodeRequiresRecentLogin Bir kullanıcının e-postasını güncellemek, kullanıcının yakın zamanda oturum açması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. Çözümlemek için, FIRUser üzerinde reauthenticateWithCredential:completion: öğesini çağırarak kullanıcının kimliğini yeniden doğrulayın.

güncellemeParolası:tamamlama:

kod Anlam
FIRAuthErrorCodeOperationNotAllowed Yöneticinin belirtilen kimlik sağlayıcıyla oturum açmayı devre dışı bıraktığını gösterir.
FIRAuthErrorCodeRequiresRecentLogin Bir kullanıcının parolasını güncellemek, kullanıcının yakın zamanda oturum açması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. Çözümlemek için, FIRUser üzerinde reauthenticateWithCredential:completion: öğesini çağırarak kullanıcının kimliğini yeniden doğrulayın.
FIRAuthErrorCodeWeakPassword Çok zayıf olarak kabul edilen bir parola belirleme girişimini belirtir. NSError.userInfo sözlük nesnesindeki NSLocalizedFailureReasonErrorKey alanı, kullanıcıya gösterilebilecek daha ayrıntılı açıklama içerecektir.

linkWithCredential:tamamlama:

kod Anlam
FIRAuthErrorCodeProviderAlreadyLinked Bu hesaba zaten bağlı türde bir sağlayıcı bağlama girişimini gösterir.
FIRAuthErrorCodeCredentialAlreadyInUse Halihazırda farklı bir Firebase hesabına bağlanmış olan bir kimlik bilgisi ile bağlantı kurma girişimini gösterir.
FIRAuthErrorCodeOperationNotAllowed Kimlik bilgisi tarafından temsil edilen kimlik sağlayıcıya sahip hesapların etkinleştirilmediğini gösterir. Bunları Firebase konsolunun Yetkilendirme bölümünde etkinleştirin.

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

unlinkFromProvider:tamamlama:

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-postanın güncellenmesi, kullanıcının yakın zamanda oturum açması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. Çözümlemek için, FIRUser üzerinde reauthenticateWithCredential:completion: öğesini ç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 Bir kullanıcı hesabını silmek, kullanıcının yakın zamanda oturum açması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. Çözümlemek için, FIRUser üzerinde reauthenticateWithCredential:completion: öğesini çağırarak kullanıcının kimliğini yeniden doğrulayın.