Apabila callback penyelesaian pada metode Authentication menerima argumen NSError
yang
tidak bernilai nol, berarti telah terjadi error. Untuk menjalankan logika penanganan error yang sesuai
dalam kode produksi, cocokkan kode error itu dengan error umum dan error yang terjadi
karena metode tertentu, sesuai dengan yang tercantum di bawah ini.
Sebagian error dapat diselesaikan dengan tindakan tertentu dari pengguna, misalnya, FIRAuthErrorCodeUserTokenExpired
dapat diselesaikan dengan membuat pengguna tersebut login kembali, sementara FIRAuthErrorCodeWrongPassword
dengan meminta pengguna memasukkan sandi yang benar.
Kecuali dalam kasus FIRAuthErrorCodeNetworkError
atau FIRAuthErrorCodeTooManyRequests
, mencoba kembali pengoperasian yang gagal dengan argumen yang sama tidak akan pernah berhasil. Jangan membuat asumsi bahwa pengoperasian tersebut berjalan di sisi server atau tidak.
Saat menyelidiki atau membuat log error, tinjau kamus userInfo
.
FIRAuthErrorNameKey
berisi string nama error lintas platform yang bisa dipakai untuk mengidentifikasi error.
NSLocalizedDescriptionKey
berisi deskripsi error. Deskripsi ini ditujukan untuk developer, bukan pengguna.
NSUnderlyingErrorKey
berisi error yang mendasar dan menyebabkan error terkait, jika error yang mendasar tersebut memang ada.
Selain kolom utama yang tercantum di atas, kolom lain dalam kamus userInfo
juga dapat Anda gunakan untuk mendiagnosis error.
Kode error yang digunakan oleh semua metode API
Kode |
Arti |
FIRAuthErrorCodeNetworkError |
Mengindikasikan terjadinya error pada jaringan selama operasi berlangsung. |
FIRAuthErrorCodeUserNotFound |
Mengindikasikan bahwa akun pengguna tidak ditemukan. Hal ini bisa terjadi jika akun pengguna telah dihapus. |
FIRAuthErrorCodeUserTokenExpired |
Mengindikasikan bahwa token pengguna saat ini sudah tidak berlaku, misalnya pengguna mungkin telah mengganti sandi akun pada perangkat lain. Anda harus meminta pengguna untuk login kembali pada perangkat ini. |
FIRAuthErrorCodeTooManyRequests |
Mengindikasikan bahwa permintaan telah diblokir setelah permintaan dengan jumlah yang tidak normal telah diajukan dari perangkat pemanggil ke server Firebase Authentication. Coba lagi setelah beberapa saat. |
FIRAuthErrorCodeInvalidAPIKey |
Mengindikasikan bahwa aplikasi telah dikonfigurasikan dengan kunci API yang tidak valid. |
FIRAuthErrorCodeAppNotAuthorized |
Mengindikasikan bahwa Aplikasi tidak diberi wewenang untuk menggunakan Firebase Authentication dengan Kunci API yang disediakan. Buka Konsol API Google dan lihat di tab kredensial untuk mengetahui apakah kunci API yang Anda gunakan memiliki ID paket aplikasi yang diizinkan atau tidak. |
FIRAuthErrorCodeKeychainError |
Mengindikasikan bahwa telah terjadi error saat mengakses keychain. Kolom NSLocalizedFailureReasonErrorKey dan NSUnderlyingErrorKey dalam kamus NSError.userInfo akan berisi informasi lebih lanjut mengenai error yang ditemukan. |
FIRAuthErrorCodeInternalError |
Mengindikasikan terjadinya error internal. Laporkan error ini dengan keseluruhan objek NSError . |
Kode error karena metode tertentu
FIRAuth
fetchProvidersForEmail:completion:
Kode |
Arti |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa format alamat email salah. |
signInWithEmail:password:completion:
Kode |
Arti |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa email dan sandi akun tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa format alamat email salah. |
FIRAuthErrorCodeUserDisabled |
Mengindikasikan bahwa akun pengguna dinonaktifkan. |
FIRAuthErrorCodeWrongPassword |
Mengindikasikan bahwa pengguna berusaha login dengan sandi yang salah. |
signInWithCredential:completion:
Kode |
Arti |
FIRAuthErrorCodeInvalidCredential |
Mengindikasikan bahwa kredensial yang diberikan tidak valid. Hal ini bisa terjadi jika kredensial sudah tidak berlaku atau dalam format yang salah. |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa alamat email dalam format yang salah, jika kredensial memiliki tipe EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
FIRAuthErrorCodeEmailAlreadyInUse |
Mengindikasikan bahwa email yang disebutkan dalam kredensial (mis. email dalam token akses Facebook) sudah dipakai oleh akun yang sudah ada dan tidak bisa diautentikasi dengan metode login ini. Panggil fetchProvidersForEmail untuk email pengguna ini lalu minta mereka login dengan salah satu penyedia login yang ditampilkan. Error ini hanya akan ditampilkan jika setelan "Satu akun per alamat email" diaktifkan di Firebase console, di bagian setelan Authentication. |
FIRAuthErrorCodeUserDisabled |
Mengindikasikan bahwa akun pengguna dinonaktifkan. |
FIRAuthErrorCodeWrongPassword |
Mengindikasikan bahwa pengguna berusaha login dengan sandi yang salah, jika kredensial memiliki tipe EmailPasswordAuthCredential . |
signInAnonymouslyWithCompletion:
Kode |
Arti |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa akun anonim tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
signInWithCustomToken:completion:
Kode |
Arti |
FIRAuthErrorCodeInvalidCustomToken |
Mengindikasikan terjadinya error validasi pada token kustom. |
FIRAuthErrorCodeCustomTokenMismatch |
Mengindikasikan bahwa akun layanan dan kunci API dimiliki oleh project yang berbeda. |
createUserWithEmail:password:completion:
Kode |
Arti |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa format alamat email salah. |
FIRAuthErrorCodeEmailAlreadyInUse |
Mengindikasikan bahwa email yang digunakan untuk mendaftar sudah ada. Panggil fetchProvidersForEmail untuk memeriksa mekanisme login yang digunakan pengguna dan minta pengguna untuk login dengan salah satunya. |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa email dan sandi akun tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
FIRAuthErrorCodeWeakPassword |
Mengindikasikan upaya untuk membuat sandi yang dianggap terlalu lemah. Kolom NSLocalizedFailureReasonErrorKey di objek kamus NSError.userInfo akan berisi penjelasan yang lebih terperinci yang dapat ditampilkan kepada pengguna. |
signOut:
Kode |
Arti |
FIRAuthErrorCodeKeychainError |
Mengindikasikan terjadinya error saat mengakses keychain. Kolom NSLocalizedFailureReasonErrorKey dan NSUnderlyingErrorKey dalam kamus NSError.userInfo akan berisi informasi lebih lanjut mengenai error yang ditemukan. |
FIRUser
Error umum untuk pengoperasian FIRUser
Kode |
Arti |
FIRAuthErrorCodeInvalidUserToken |
Mengindikasikan bahwa token refresh, yang berisi informasi sesi milik pengguna yang login, tidak valid. Anda harus meminta pengguna untuk login kembali pada perangkat ini. |
FIRAuthErrorCodeUserDisabled |
Mengindikasikan bahwa akun pengguna dinonaktifkan dan tidak dapat dipakai hingga diaktifkan kembali dari dalam panel Pengguna di Firebase console. |
reauthenticateWithCredential:completion:
Kode |
Arti |
FIRAuthErrorCodeInvalidCredential |
Mengindikasikan bahwa kredensial yang diberikan tidak valid. Hal ini bisa terjadi jika kredensial sudah tidak berlaku atau dalam format yang salah. |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa alamat email dalam format yang salah, jika kredensial memiliki tipe EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword |
Mengindikasikan bahwa pengguna berupaya untuk melakukan autentikasi ulang dengan sandi yang salah jika kredensial memiliki tipe EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch |
Mengindikasikan bahwa sebuah upaya dilakukan untuk mengautentikasi ulang dengan pengguna yang bukan pengguna saat ini. |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
FIRAuthErrorCodeEmailAlreadyInUse |
Mengindikasikan bahwa email yang disebut dalam kredensial (mis. email dalam token akses Facebook) sudah dipakai oleh akun yang sudah ada dan tidak bisa diautentikasi ulang dengan metode login ini. Panggil fetchProvidersForEmail untuk email pengguna ini lalu minta mereka login dengan salah satu penyedia login yang ditampilkan. Error ini hanya akan ditampilkan jika setelan "Satu akun per alamat email" diaktifkan di Firebase console, di bagian setelan Authentication. |
FIRAuthErrorCodeUserDisabled |
Mengindikasikan bahwa akun pengguna dinonaktifkan. |
updateEmail:completion:
Kode |
Arti |
FIRAuthErrorCodeEmailAlreadyInUse |
Mengindikasikan bahwa email telah digunakan oleh akun lain. |
FIRAuthErrorCodeInvalidEmail |
Mengindikasikan bahwa format alamat email salah. |
FIRAuthErrorCodeRequiresRecentLogin |
Memperbarui email pengguna merupakan operasi yang sensitif terhadap keamanan dan pengguna diharuskan untuk login baru-baru ini. Error ini mengindikasikan bahwa pengguna sudah lama tidak login. Untuk menyelesaikannya, lakukan autentikasi ulang pada pengguna dengan mengaktifkan reauthenticateWithCredential:completion: pada FIRUser . |
updatePassword:completion:
Kode |
Arti |
FIRAuthErrorCodeOperationNotAllowed |
Menunjukkan bahwa administrator menonaktifkan proses login dengan penyedia identitas yang ditentukan. |
FIRAuthErrorCodeRequiresRecentLogin |
Memperbarui sandi pengguna merupakan operasi yang sensitif terhadap keamanan dan pengguna diharuskan untuk login baru-baru ini. Error ini mengindikasikan bahwa pengguna sudah lama tidak login. Untuk menyelesaikannya, lakukan autentikasi ulang pada pengguna dengan mengaktifkan reauthenticateWithCredential:completion: pada FIRUser . |
FIRAuthErrorCodeWeakPassword |
Mengindikasikan upaya untuk membuat sandi yang dianggap terlalu lemah. Kolom NSLocalizedFailureReasonErrorKey di objek kamus NSError.userInfo akan berisi penjelasan yang lebih terperinci yang dapat ditampilkan kepada pengguna. |
linkWithCredential:completion:
Kode |
Arti |
FIRAuthErrorCodeProviderAlreadyLinked |
Mengindikasikan upaya untuk menghubungkan penyedia dengan tipe yang sudah dihubungkan ke akun ini. |
FIRAuthErrorCodeCredentialAlreadyInUse |
Mengindikasikan upaya untuk menghubungkan dengan kredensial yang telah dihubungkan dengan akun Firebase lain. |
FIRAuthErrorCodeOperationNotAllowed |
Mengindikasikan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan keduanya di bagian Authentication pada Firebase console. |
Metode ini juga dapat menampilkan kode error yang terkait dengan updateEmail:completion:
dan
updatePassword:completion:
pada FIRUser
.
unlinkFromProvider:completion:
Kode |
Arti |
FIRAuthErrorCodeNoSuchProvider |
Mengindikasikan upaya untuk memutus kaitan dengan penyedia yang tidak terkait dengan akun. |
FIRAuthErrorCodeRequiresRecentLogin |
Memperbarui email merupakan operasi yang sensitif terhadap keamanan dan pengguna diharuskan untuk login baru-baru ini. Error ini mengindikasikan bahwa pengguna sudah lama tidak login. Untuk menyelesaikannya, lakukan autentikasi ulang pada pengguna dengan mengaktifkan reauthenticateWithCredential:completion: pada FIRUser . |
sendEmailVerificationWithCompletion:
Kode |
Arti |
FIRAuthErrorCodeUserNotFound |
Mengindikasikan bahwa akun pengguna tidak ditemukan. |
deleteWithCompletion:
Kode |
Arti |
FIRAuthErrorCodeRequiresRecentLogin |
Menghapus akun pengguna merupakan operasi yang sensitif terhadap keamanan dan memerlukan pengguna untuk login baru-baru ini. Error ini mengindikasikan bahwa pengguna sudah lama tidak login. Untuk menyelesaikannya, lakukan autentikasi ulang pada pengguna dengan mengaktifkan reauthenticateWithCredential:completion: pada FIRUser . |