Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Menangani Kesalahan Autentikasi Platform Apple Firebase

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Jika panggilan balik penyelesaian pada metode Otentikasi menerima argumen NSError yang bukan nihil, kesalahan telah terjadi. Untuk mengirim ke logika penanganan kesalahan yang sesuai dalam kode produksi Anda, periksa kode kesalahan terhadap kesalahan umum dan kesalahan khusus metode yang tercantum di bawah ini.

Beberapa kesalahan dapat diselesaikan dengan tindakan pengguna tertentu, misalnya, FIRAuthErrorCodeUserTokenExpired dapat diselesaikan dengan membuat pengguna masuk lagi, dan FIRAuthErrorCodeWrongPassword dengan meminta pengguna untuk memberikan kata sandi yang benar.

Kecuali dalam kasus FIRAuthErrorCodeNetworkError atau FIRAuthErrorCodeTooManyRequests , mencoba kembali operasi yang gagal dengan argumen yang sama tidak akan pernah berhasil. Jangan berasumsi apakah operasi telah diterapkan di sisi server atau tidak.

Saat menyelidiki atau mencatat kesalahan, userInfo kamus info pengguna. FIRAuthErrorNameKey berisi string nama kesalahan lintas platform yang dapat digunakan untuk mengidentifikasi kesalahan. NSLocalizedDescriptionKey berisi deskripsi kesalahan. Deskripsi ini dimaksudkan untuk pengembang, bukan pengguna. NSUnderlyingErrorKey berisi kesalahan mendasar yang menyebabkan kesalahan tersebut, jika ada kesalahan mendasar.

Selain bidang utama yang tercantum di atas, mungkin ada bidang lain dalam kamus userInfo pengguna yang mungkin berguna bagi Anda saat mendiagnosis kesalahan.

Kode kesalahan umum untuk semua metode API

Kode Berarti
FIRAuthErrorCodeNetworkError Menunjukkan kesalahan jaringan yang terjadi selama operasi.
FIRAuthErrorCodeUserNotFound Menunjukkan akun pengguna tidak ditemukan. Ini bisa terjadi jika akun pengguna telah dihapus.
FIRAuthErrorCodeUserTokenExpired Menunjukkan token pengguna saat ini telah kedaluwarsa, misalnya, pengguna mungkin telah mengubah kata sandi akun di perangkat lain. Anda harus meminta pengguna untuk masuk lagi di perangkat ini.
FIRAuthErrorCodeTooManyRequests Menunjukkan bahwa permintaan telah diblokir setelah jumlah permintaan yang tidak normal dibuat dari perangkat pemanggil ke server Firebase Authentication. Coba lagi setelah beberapa waktu.
FIRAuthErrorCodeInvalidAPIKey Menunjukkan aplikasi telah dikonfigurasi dengan kunci API yang tidak valid.
FIRAuthErrorCodeAppNotAuthorized Menunjukkan bahwa Aplikasi tidak diizinkan untuk menggunakan Firebase Authentication dengan Kunci API yang disediakan. buka Konsol Google API dan periksa di bawah tab kredensial bahwa kunci API yang Anda gunakan telah memasukkan ID bundel aplikasi Anda ke daftar putih.
FIRAuthErrorCodeKeychainError Menunjukkan kesalahan yang terjadi saat mengakses gantungan kunci. Bidang NSLocalizedFailureReasonErrorKey dan NSUnderlyingErrorKey di kamus NSError.userInfo akan berisi informasi selengkapnya tentang kesalahan yang ditemui.
FIRAuthErrorCodeInternalError Menunjukkan kesalahan internal yang terjadi. Harap laporkan kesalahan dengan seluruh objek NSError .

Kode kesalahan khusus metode

FIRAuth

fetchProvidersForEmail:penyelesaian:

Kode Berarti
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format.

signInWithEmail:kata sandi:selesai:

Kode Berarti
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun email dan kata sandi tidak diaktifkan. Aktifkan mereka di bagian Auth di Firebase console .
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format.
FIRAuthErrorCodeUserDisabled Menunjukkan akun pengguna dinonaktifkan.
FIRAuthErrorCodeWrongPassword Menunjukkan pengguna mencoba masuk dengan sandi yang salah.

signInWithCredential:penyelesaian:

Kode Berarti
FIRAuthErrorCodeInvalidCredential Menunjukkan kredensial yang diberikan tidak valid. Ini bisa terjadi jika sudah kedaluwarsa atau formatnya salah.
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format, jika kredensial bertipe EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan mereka di bagian Auth di Firebase console .
FIRAuthErrorCodeEmailAlreadyInUse Menunjukkan email yang ditegaskan oleh kredensial (misalnya email di token akses Facebook) sudah digunakan oleh akun yang ada, yang tidak dapat diautentikasi dengan metode masuk ini. Panggil fetchProvidersForEmail untuk email pengguna ini, lalu minta mereka untuk masuk dengan salah satu penyedia masuk yang dikembalikan. Kesalahan ini hanya akan muncul jika setelan "Satu akun per alamat email" diaktifkan di Firebase console , di bawah setelan Otentikasi.
FIRAuthErrorCodeUserDisabled Menunjukkan akun pengguna dinonaktifkan.
FIRAuthErrorCodeWrongPassword Menunjukkan pengguna mencoba masuk dengan sandi yang salah, jika kredensial berjenis EmailPasswordAuthCredential .

signInAnonymouslyWithCompletion:

Kode Berarti
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun anonim tidak diaktifkan. Aktifkan mereka di bagian Auth di Firebase console .

signInWithCustomToken:selesai:

Kode Berarti
FIRAuthErrorCodeInvalidCustomToken Menunjukkan kesalahan validasi dengan token khusus.
FIRAuthErrorCodeCustomTokenMismatch Menunjukkan akun layanan dan kunci API milik proyek yang berbeda.

createUserWithEmail:kata sandi:penyelesaian:

Kode Berarti
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format.
FIRAuthErrorCodeEmailAlreadyInUse Menunjukkan email yang digunakan untuk mencoba mendaftar sudah ada. Panggil fetchProvidersForEmail untuk memeriksa mekanisme masuk mana yang digunakan pengguna tersebut, dan meminta pengguna untuk masuk dengan salah satunya.
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun email dan kata sandi tidak diaktifkan. Aktifkan mereka di bagian Otentikasi di Firebase console .
FIRAuthErrorCodeWeakPassword Menunjukkan upaya untuk menetapkan sandi yang dianggap terlalu lemah. Bidang NSLocalizedFailureReasonErrorKey di objek kamus NSError.userInfo akan berisi penjelasan lebih rinci yang dapat ditampilkan kepada pengguna.

keluar:

Kode Berarti
FIRAuthErrorCodeKeychainError Diindikasikan terjadi kesalahan saat mengakses gantungan kunci. Bidang NSLocalizedFailureReasonErrorKey dan NSUnderlyingErrorKey di kamus NSError.userInfo akan berisi informasi selengkapnya tentang kesalahan yang ditemui.

FIRUser

Kesalahan umum untuk operasi FIRUser

Kode Berarti
FIRAuthErrorCodeInvalidUserToken Menunjukkan bahwa token penyegaran pengguna yang masuk, yang menyimpan informasi sesi, tidak valid. Anda harus meminta pengguna untuk masuk lagi di perangkat ini.
FIRAuthErrorCodeUserDisabled Menunjukkan akun pengguna dinonaktifkan dan tidak dapat digunakan lagi hingga diaktifkan kembali dari dalam panel Pengguna di konsol Firebase.

reauthenticateWithCredential: penyelesaian:

Kode Berarti
FIRAuthErrorCodeInvalidCredential Menunjukkan kredensial yang diberikan tidak valid. Ini bisa terjadi jika sudah kedaluwarsa atau formatnya salah.
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format, jika kredensial bertipe EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Menunjukkan pengguna mencoba mengautentikasi ulang dengan sandi yang salah, jika kredensial bertipe EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Menunjukkan bahwa upaya telah dilakukan untuk mengautentikasi ulang dengan pengguna yang bukan pengguna saat ini.
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan mereka di bagian Auth di Firebase console .
FIRAuthErrorCodeEmailAlreadyInUse Menunjukkan email yang ditegaskan oleh kredensial (misalnya email di token akses Facebook) sudah digunakan oleh akun yang ada, yang tidak dapat diautentikasi ulang dengan metode masuk ini. Panggil fetchProvidersForEmail untuk email pengguna ini, lalu minta mereka untuk masuk dengan salah satu penyedia masuk yang dikembalikan. Kesalahan ini hanya akan muncul jika setelan "Satu akun per alamat email" diaktifkan di Firebase console , di bawah setelan Otentikasi.
FIRAuthErrorCodeUserDisabled Menunjukkan akun pengguna dinonaktifkan.

updateEmail:selesai:

Kode Berarti
FIRAuthErrorCodeEmailAlreadyInUse Menunjukkan email sudah digunakan oleh akun lain.
FIRAuthErrorCodeInvalidEmail Menunjukkan alamat email salah format.
FIRAuthErrorCodeRequiresRecentLogin Memperbarui email pengguna adalah operasi sensitif keamanan yang memerlukan login terbaru dari pengguna. Kesalahan ini menunjukkan bahwa pengguna belum cukup lama masuk. Untuk mengatasinya, autentikasi ulang pengguna dengan menjalankan reauthenticateWithCredential:completion: pada FIRUser .

updatePassword:selesai:

Kode Berarti
FIRAuthErrorCodeOperationNotAllowed Menunjukkan administrator menonaktifkan masuk dengan penyedia identitas yang ditentukan.
FIRAuthErrorCodeRequiresRecentLogin Memperbarui kata sandi pengguna adalah operasi sensitif keamanan yang memerlukan login terbaru dari pengguna. Kesalahan ini menunjukkan bahwa pengguna belum cukup lama masuk. Untuk mengatasinya, autentikasi ulang pengguna dengan menjalankan reauthenticateWithCredential:completion: pada FIRUser .
FIRAuthErrorCodeWeakPassword Menunjukkan upaya untuk menetapkan sandi yang dianggap terlalu lemah. Bidang NSLocalizedFailureReasonErrorKey di objek kamus NSError.userInfo akan berisi penjelasan lebih rinci yang dapat ditampilkan kepada pengguna.

linkWithCredential:selesai:

Kode Berarti
FIRAuthErrorCodeProviderAlreadyLinked Menunjukkan upaya untuk menautkan penyedia dari jenis yang sudah ditautkan ke akun ini.
FIRAuthErrorCodeCredentialAlreadyInUse Menunjukkan upaya untuk menautkan dengan kredensial yang telah ditautkan dengan akun Firebase yang berbeda.
FIRAuthErrorCodeOperationNotAllowed Menunjukkan bahwa akun dengan penyedia identitas yang diwakili oleh kredensial tidak diaktifkan. Aktifkan mereka di bagian Auth di Firebase console .

Metode ini juga dapat mengembalikan kode kesalahan yang terkait dengan updateEmail:completion: dan updatePassword:completion: di FIRUser .

batalkan tautanDariProvider:selesai:

Kode Berarti
FIRAuthErrorCodeNoSuchProvider Menunjukkan upaya untuk memutuskan tautan penyedia yang tidak tertaut ke akun.
FIRAuthErrorCodeRequiresRecentLogin Memperbarui email adalah operasi sensitif keamanan yang memerlukan login terbaru dari pengguna. Kesalahan ini menunjukkan bahwa pengguna belum cukup lama masuk. Untuk mengatasinya, autentikasi ulang pengguna dengan menjalankan reauthenticateWithCredential:completion: pada FIRUser .

sendEmailVerificationWithCompletion:

Kode Berarti
FIRAuthErrorCodeUserNotFound Menunjukkan akun pengguna tidak ditemukan.

hapusDenganPenyelesaian:

Kode Berarti
FIRAuthErrorCodeRequiresRecentLogin Menghapus akun pengguna adalah operasi sensitif keamanan yang memerlukan login terbaru dari pengguna. Kesalahan ini menunjukkan bahwa pengguna belum cukup lama masuk. Untuk mengatasinya, autentikasi ulang pengguna dengan menjalankan reauthenticateWithCredential:completion: pada FIRUser .