1 00:00:02,120 --> 00:00:07,130 Mari kita mulai dengan mengelola status pemuatan di sini di layar auth karena jelas saya ingin 2 00:00:07,130 --> 00:00:10,570 memberi umpan balik kepada pengguna saat kami sedang menunggu tanggapan. 3 00:00:10,670 --> 00:00:17,060 Untuk ini, kita dapat mengimpor indikator aktivitas yang sudah Anda ketahui dan mengelola status pemuatan 4 00:00:17,810 --> 00:00:26,990 di sini dengan menambahkan status lain di sini, isLoading dan mengatur isLoading yang kami inisialisasi ke false karena awalnya kami tidak memuat 5 00:00:26,990 --> 00:00:36,470 dan sekarang di sini ketika kami berada dalam auth ini Handler, saya dapat menambahkan async di sini karena tentu saja mendaftar di sini 6 00:00:37,370 --> 00:00:39,860 mengembalikan janji, sama untuk login, 7 00:00:39,920 --> 00:00:46,040 jadi fungsi pencipta tindakan ini mengembalikan janji. Jadi kita bisa menunggu hasil pengiriman yang 8 00:00:46,070 --> 00:00:52,820 akhirnya menggunakan janji-janji ini yang kita dapatkan dan pada dasarnya memulai seluruh proses ini dan sebelum kita menunggu ini, 9 00:00:52,820 --> 00:00:56,890 saya dapat mengatur isLoading menjadi true, jadi ketika kita memulai seluruh 10 00:00:56,900 --> 00:01:02,720 proses ini, sebelum kita mengirim permintaan dan setelah itu set isLoading ke false setelah kami selesai 11 00:01:02,840 --> 00:01:06,480 dengan permintaan ini, tidak peduli apakah itu gagal atau tidak. 12 00:01:07,720 --> 00:01:10,320 Dan sekarang isLoading dapat digunakan untuk menampilkan pemintal 13 00:01:10,330 --> 00:01:15,760 pemuatan, terserah Anda di mana Anda menampilkan ini, misalnya Anda bisa mengatakan bahwa Anda ingin mengganti tombol 14 00:01:15,760 --> 00:01:17,890 mendaftar ini dengan pemintal pemuatan. 15 00:01:17,890 --> 00:01:21,420 Jadi di sini kita bisa mengatakan jika iso Memuat benar, 16 00:01:21,490 --> 00:01:25,010 saya ingin menunjukkan indikator aktivitas seperti itu, kalau tidak saya 17 00:01:25,090 --> 00:01:27,520 akan menunjukkan tombol, jadi ini adalah sintaks 18 00:01:27,520 --> 00:01:29,590 yang bisa kita gunakan, atur 19 00:01:29,590 --> 00:01:38,510 ukuran di sini menjadi kecil dan warna ke Warna. primer katakanlah. Sekarang jika kita mencobanya dan 20 00:01:38,510 --> 00:01:47,660 kita kembali, di sini di iOS jika saya mencoba masuk, memang saya melihat loading spinner dan kemudian saya kembali, 21 00:01:47,900 --> 00:01:54,800 jadi itu bekerja, sekarang untuk penanganan kesalahan. 22 00:01:54,800 --> 00:01:54,800 Untuk penanganan kesalahan, Anda juga belajar cara kerjanya. 23 00:01:54,830 --> 00:01:58,900 Anda tentu saja dapat mengatur status kesalahan Anda di 24 00:01:58,940 --> 00:02:05,180 sini juga, Anda dapat kembali menggunakan peredam untuk menggabungkan status memuat dan kesalahan menjadi 25 00:02:05,180 --> 00:02:06,250 satu objek, 26 00:02:06,470 --> 00:02:11,540 tetapi saya akan melakukannya seperti ini, kesalahan dan mengatur kesalahan dengan 27 00:02:11,570 --> 00:02:22,010 bantuan status penggunaan yang awalnya tidak dapat memberikan nilai sehingga ini tidak terdefinisi pada awalnya dan kemudian di sini, kita dapat membungkus mencoba menangkap 28 00:02:22,010 --> 00:02:27,140 pengiriman ini di sini di mana kita mendapatkan kesalahan potensial dan 29 00:02:27,140 --> 00:02:34,640 mengatur kesalahan kita ke pesan kesalahan ini kita akan kembali dan sebelum kita mengirim permintaan, Saya juga 30 00:02:34,640 --> 00:02:41,420 ingin mengatur kesalahan saya kembali ke nol. Jadi sekarang kita menyimpan kesalahan potensial di sini dalam kesalahan set 31 00:02:41,610 --> 00:02:45,620 dan saya hanya ingin melempar peringatan, menunjukkan peringatan kepada pengguna jika kita mendapatkan kesalahan. 32 00:02:45,630 --> 00:02:52,110 Jadi untuk ini, Anda perlu memastikan bahwa Anda mengimpor lansiran dari Bereaksi Asli dan 33 00:02:52,110 --> 00:02:58,860 juga menggunakan efek dari reaksi karena efek penggunaan memungkinkan kami bereaksi terhadap perubahan dalam 34 00:02:58,860 --> 00:03:09,340 status kesalahan dan menunjukkan peringatan kesalahan jika kami memiliki kesalahan. Jadi mungkin di sini setelah menyiapkan peredam, kita dapat menambahkan efek penggunaan dan ketergantungan 35 00:03:09,340 --> 00:03:14,620 saya di sini adalah variabel status kesalahan atau konstan dan jika kita memiliki kesalahan, jadi 36 00:03:14,620 --> 00:03:23,190 jika ini benar-ish, maka saya ingin menunjukkan peringatan dengan peringatan API tempat saya mengatakan kesalahan terjadi dan pesan saya adalah kesalahan yang seharusnya berupa 37 00:03:23,910 --> 00:03:29,580 string dan saya akan menambahkan tombol di mana saya memiliki teks OK dan tentu saja Anda 38 00:03:29,940 --> 00:03:34,840 dapat menambahkan lebih banyak tombol di mana Anda melakukan hal-hal yang berbeda. 39 00:03:34,930 --> 00:03:41,950 Sekarang kita dapat mensimulasikan ini di pembuat tindakan dengan pergi ke sana dan untuk masuk, katakanlah kita menghapus D di 40 00:03:42,370 --> 00:03:49,350 sini, sehingga ini adalah URL yang salah pada akhirnya. Jika sekarang kita mencoba masuk di sini, 41 00:03:52,500 --> 00:03:54,790 saya mendapatkan kesalahan ini. 42 00:03:54,810 --> 00:03:55,340 Nah, 43 00:03:55,350 --> 00:04:01,920 itu bagus tetapi ada juga jenis kesalahan lain yang ingin saya tangani, misalnya bagaimana jika 44 00:04:01,920 --> 00:04:08,930 saya login dengan alamat email yang tidak ada? Tentu saja saya ingin menunjukkan kesalahan kepada pengguna 45 00:04:08,930 --> 00:04:15,670 juga dan saya lakukan tetapi saya hanya menunjukkan ada kesalahan yang bukan kesalahan yang ingin saya tampilkan. 46 00:04:15,700 --> 00:04:21,850 Sekarang saya menunjukkan kesalahan ini karena di pembuat tindakan di sini, jika responsnya tidak beres, saya melempar sesuatu 47 00:04:21,850 --> 00:04:22,690 yang salah. 48 00:04:22,690 --> 00:04:27,910 Sekarang masalahnya adalah ketika kita mengirim email yang salah atau kata sandi yang salah, 49 00:04:27,910 --> 00:04:35,410 juga dengan cara mendaftar jika kita mengirim sesuatu yang bukan email atau kata sandi yang terlalu pendek, jika itu terjadi, maka 50 00:04:35,410 --> 00:04:42,890 kita akan dapatkan kembali respons dengan kode status 400 sesuatu dan kami mendapatkan beberapa detail kesalahan sebagai bagian dari respons 51 00:04:42,890 --> 00:04:43,750 dan sekarang 52 00:04:43,760 --> 00:04:46,490 dengan penanganan kesalahan kami, kami tidak melihat 53 00:04:46,740 --> 00:04:50,590 itu, jadi kami perlu mengubahnya. Alih-alih segera melempar kesalahan di 54 00:04:50,600 --> 00:04:53,730 sini jika responsnya tidak oke, saya tetap ingin memeriksanya. 55 00:04:53,870 --> 00:04:57,980 Jadi saya akan memiliki data respons kesalahan 56 00:04:57,980 --> 00:05:06,230 yang saya dapatkan dengan menunggu tanggapan JSON di sini. Jadi saya melakukan hal yang sama seperti dalam kasus sukses tetapi saya mengekstraknya ke 57 00:05:06,250 --> 00:05:09,550 bidang yang berbeda dan sekarang di sini saya ingin konsol mencatat 58 00:05:09,580 --> 00:05:12,710 data respons kesalahan sehingga kami dapat merasakan bagaimana ini terlihat. 59 00:05:12,720 --> 00:05:20,680 Jadi sekarang mari kita coba memasukkan alamat email yang tidak ada lagi dan sekarang kita mendapatkan kesalahan aneh yang baru saja Anda lihat, tetapi sekarang kami memiliki output yang 60 00:05:20,680 --> 00:05:25,600 menarik di sini dan Anda melihat ini adalah objek kesalahan yang dikembalikan Firebase kepada saya dan tentu saja 61 00:05:25,600 --> 00:05:26,870 itu tergantung pada API 62 00:05:26,920 --> 00:05:30,130 yang Anda ajak bicara, jenis kesalahan apa yang Anda dapatkan dan kapan 63 00:05:30,130 --> 00:05:35,560 Anda mendapatkannya dan detail apa yang termasuk di dalamnya. Ini seperti yang Anda lihat adalah 64 00:05:35,560 --> 00:05:43,060 objek yang memiliki kunci kesalahan yang merupakan objek lain yang memiliki kode kesalahan, beberapa detail tentang 65 00:05:43,060 --> 00:05:48,490 kesalahan dan kemudian pesan ini yang misalnya email tidak ditemukan dan itulah 66 00:05:48,490 --> 00:05:53,060 bagian yang saya tertarik. Ngomong-ngomong, dalam dokumen resmi, Anda akan menemukan lebih banyak pengidentifikasi 67 00:05:53,080 --> 00:05:55,860 kesalahan potensial yang bisa Anda dapatkan. Jadi pada 68 00:05:55,890 --> 00:06:04,800 akhirnya, itulah yang ingin saya periksa sekarang. Saya ingin mendapatkan ID kesalahan saya, katakanlah dari data respons kesalahan 69 00:06:04,800 --> 00:06:11,160 dengan mengakses bidang kesalahan ada bidang ini yang memberi saya akses ke objek ini yang kemudian memiliki 70 00:06:11,160 --> 00:06:12,580 bidang pesan ini. 71 00:06:12,720 --> 00:06:19,470 Jadi karena itu di sini, saya kemudian mengakses pesan untuk mendapatkan pesan ini dan sekarang kita dapat memeriksanya, kita dapat 72 00:06:20,040 --> 00:06:27,260 memeriksa apakah ID kesalahan sama dengan email yang tidak ditemukan. Jika itu masalahnya, saya ingin mengatur pesan saya sendiri, 73 00:06:27,270 --> 00:06:33,090 jadi di sini saya akan menambahkan pesan variabel yang hanya ada yang tidak beres secara default, 74 00:06:33,300 --> 00:06:38,580 tetapi di sini jika kita tahu masalahnya adalah kita tidak menemukan email alamat, kita 75 00:06:38,610 --> 00:06:44,550 dapat mengatakan email ini tidak dapat ditemukan dan saya akan menambahkan lebih banyak jika cek dalam sedetik. 76 00:06:44,550 --> 00:06:49,650 Jadi ini adalah sesuatu yang ingin saya periksa di sini dan pada akhirnya karena itu, saya memiliki pesan yang sekarang ingin saya 77 00:06:49,650 --> 00:06:50,100 buang, 78 00:06:50,130 --> 00:06:55,860 jadi sekarang saya akan melempar kesalahan baru dengan pesan khusus saya sendiri. Jadi cek lain yang 79 00:06:55,860 --> 00:07:03,890 ingin saya tambahkan dengan pernyataan else / if di sini adalah apakah ID kesalahan 80 00:07:03,890 --> 00:07:15,050 untuk masuk dengan kata sandi yang tidak valid katakanlah. Jadi saya bisa mengeceknya dan menetapkan pesan sama dengan kata sandi ini tidak valid dan sekarang 81 00:07:15,050 --> 00:07:16,480 mari kita coba lagi. 82 00:07:16,580 --> 00:07:23,240 Mari kita kembali dan memasukkan alamat email yang tidak ada, login cepat dan kami mendapatkan alamat email ini tidak 83 00:07:23,250 --> 00:07:26,210 dapat ditemukan atau email ini tidak dapat ditemukan. 84 00:07:26,430 --> 00:07:35,030 Sekarang mari kita coba alamat email yang valid tetapi sebenarnya kata sandi yang tidak valid, seperti ini dan kami mendapatkan kata sandi ini tidak 85 00:07:35,030 --> 00:07:36,550 valid, jadi sekarang kami 86 00:07:36,590 --> 00:07:39,370 memberikan umpan balik yang lebih baik kepada pengguna. 87 00:07:39,410 --> 00:07:46,880 Sekarang mari kita terapkan hal yang sama untuk mendaftar, jadi saya akan menyalinnya dan pergi ke kasir saya di sana-sini saya 88 00:07:46,880 --> 00:07:49,310 hanya memiliki kode kesalahan yang berbeda, di 89 00:07:49,310 --> 00:07:52,130 sana saya memiliki kode seperti ada email, jika 90 00:07:52,130 --> 00:07:54,270 alamat email itu sudah ada. 91 00:07:54,560 --> 00:08:02,370 Jadi saya mengekstrak ID kesalahan saya dengan cara yang sama tetapi kemudian saya memeriksa apakah ada email dan jika ini adalah kesalahan, saya katakan 92 00:08:03,300 --> 00:08:04,740 email ini sudah ada. 93 00:08:08,000 --> 00:08:09,710 Sekarang ini sebenarnya satu-satunya hal 94 00:08:09,710 --> 00:08:15,830 yang ingin saya periksa di sini, ada kesalahan lain juga yang bisa Anda dapatkan dan Anda bisa misalnya cukup matikan validasi Anda 95 00:08:15,830 --> 00:08:20,860 di sini dan lihat kesalahan yang Anda dapatkan jika Anda mengirim e- yang tidak valid alamat email dengan 96 00:08:20,870 --> 00:08:22,950 masuk ID kesalahan itu dan kemudian Anda dapat 97 00:08:22,960 --> 00:08:28,850 memeriksa itu juga, di sini saya hanya akan mengimplementasikan pesan ini dan karena itu sekarang jika saya mencoba mendaftar di sini 98 00:08:28,850 --> 00:08:37,070 dengan alamat email yang sudah saya gunakan, seperti ini, saya dapatkan email ini sudah ada Di sisi lain, jika saya menggunakan alamat email yang valid 99 00:08:37,100 --> 00:08:44,250 tentu saja, ini hanya melewati dan menggunakan Firebase, tentu saja, jika Anda pergi ke otentikasi dan menyegarkan 100 00:08:44,250 --> 00:08:47,530 ini, Anda akan melihat pengguna kedua itu. 101 00:08:47,580 --> 00:08:52,040 Jadi ini adalah bagaimana Anda dapat menambahkan pemintal pemuatan dan penanganan kesalahan dengan otentikasi. 102 00:08:52,080 --> 00:08:57,420 Itu semua bagus tapi sekarang akhirnya akan menyenangkan juga meninggalkan layar itu dan pergi ke aplikasi kita dan kemudian 103 00:08:57,420 --> 00:08:59,670 mulai bekerja dengan token yang kita dapatkan.