1 00:00:02,120 --> 00:00:07,130 Zacznijmy od zarządzania stanem ładowania tutaj na ekranie uwierzytelniania, ponieważ oczywiście chcę przekazać 2 00:00:07,130 --> 00:00:10,570 użytkownikowi informacje zwrotne, gdy obecnie czekamy na odpowiedź. 3 00:00:10,670 --> 00:00:17,060 W tym celu możemy zaimportować wskaźnik aktywności, który już znasz i zarządzać tutaj 4 00:00:17,810 --> 00:00:26,990 stanem ładowania, dodając tutaj inny stan, isLoading i ustaw isLoading, który inicjujemy na false, ponieważ początkowo nie ładujemy, a 5 00:00:26,990 --> 00:00:36,470 teraz tutaj, gdy jesteśmy w tym auth handler, mogę tu dodać asynchronię, ponieważ oczywiście rejestracja tutaj zwraca obietnicę, to 6 00:00:37,370 --> 00:00:39,860 samo dla logowania, więc 7 00:00:39,920 --> 00:00:46,040 funkcje twórcy tych akcji zwracają obietnice. Możemy więc poczekać na wynik wysyłki, 8 00:00:46,070 --> 00:00:52,820 która ostatecznie wykorzysta otrzymane obietnice i zasadniczo rozpocznie cały ten proces, a zanim na to czekamy, 9 00:00:52,820 --> 00:00:56,890 mogę ustawić isLoading na wartość true, więc kiedy rozpoczniemy cały 10 00:00:56,900 --> 00:01:02,720 proces, zanim wyślemy zapytanie a następnie ustawimy IsLoading na false, gdy skończymy z tym 11 00:01:02,840 --> 00:01:06,480 żądaniem, bez względu na to, czy się nie powiedzie. 12 00:01:07,720 --> 00:01:10,320 A teraz isLoading może być używany do wyświetlania 13 00:01:10,330 --> 00:01:15,760 tarczy ładującej, to od Ciebie zależy, gdzie ją wyświetlisz, na przykład możesz powiedzieć, że chcesz zastąpić 14 00:01:15,760 --> 00:01:17,890 ten przycisk rejestracji tarczy ładującej. 15 00:01:17,890 --> 00:01:21,420 Możemy więc powiedzieć, że jeśli isLoading jest prawdą, chcę 16 00:01:21,490 --> 00:01:25,010 pokazać wskaźnik aktywności w ten sposób, w przeciwnym razie 17 00:01:25,090 --> 00:01:27,520 pokażę przycisk, więc jest to składnia, 18 00:01:27,520 --> 00:01:29,590 której moglibyśmy użyć, ustaw 19 00:01:29,590 --> 00:01:38,510 tutaj rozmiar na mały, a kolor na Kolory. powiedzmy pierwotnie. Teraz, jeśli spróbujemy i 20 00:01:38,510 --> 00:01:47,660 wrócimy, tutaj na iOS, jeśli spróbuję się zalogować, rzeczywiście widzę ładowanie tarczy, a potem wracam, więc 21 00:01:47,900 --> 00:01:54,800 to działa, teraz do obsługi błędów. 22 00:01:54,800 --> 00:01:54,800 Do obsługi błędów dowiesz się również, jak to działa. 23 00:01:54,830 --> 00:01:58,900 Tutaj oczywiście możesz również zarządzać stanem błędu, możesz 24 00:01:58,940 --> 00:02:05,180 również użyć reduktora, aby połączyć ładowanie i stan błędu w jeden obiekt, 25 00:02:05,180 --> 00:02:06,250 ale 26 00:02:06,470 --> 00:02:11,540 zrobię to w ten sposób, błąd i ustawię błąd za 27 00:02:11,570 --> 00:02:22,010 pomocą stanu użycia, który początkowo nie nie przypisuj wartości, aby początkowo była niezdefiniowana, a następnie tutaj, możemy owinąć próbę złapania 28 00:02:22,010 --> 00:02:27,140 tej wysyłki tutaj, gdzie otrzymujemy potencjalny błąd i ustawić nasz 29 00:02:27,140 --> 00:02:34,640 błąd na ten komunikat o błędzie, który otrzymujemy i zanim wyślemy żądanie, Chcę również ustawić 30 00:02:34,640 --> 00:02:41,420 mój błąd z powrotem na zero. Więc teraz przechowujemy potencjalny błąd w ustawionym błędzie i 31 00:02:41,610 --> 00:02:45,620 chcę po prostu wysłać alert, pokazać użytkownikowi alert, jeśli otrzymamy błąd. 32 00:02:45,630 --> 00:02:52,110 W tym celu musisz upewnić się, że importujesz alert z React Native, a 33 00:02:52,110 --> 00:02:58,860 także używasz efektu z reakcji, ponieważ efekt użycia pozwala nam reagować na zmiany w 34 00:02:58,860 --> 00:03:09,340 stanie błędu i wyświetlać alert o błędzie, jeśli wystąpi błąd. Więc może tutaj po skonfigurowaniu reduktora możemy dodać efekt użycia, a moją 35 00:03:09,340 --> 00:03:14,620 zależnością jest zmienna lub stała stanu błędu, a jeśli mamy błąd, więc 36 00:03:14,620 --> 00:03:23,190 jeśli jest to prawda, to chcę pokazać alert z alertem Interfejs API, w którym mówię, że wystąpił błąd, a moja wiadomość 37 00:03:23,910 --> 00:03:29,580 jest błędem, który powinien być ciągiem, i dodam przycisk, w którym mam tekst OK, 38 00:03:29,940 --> 00:03:34,840 i oczywiście możesz dodać więcej przycisków, w których robisz różne rzeczy. 39 00:03:34,930 --> 00:03:41,950 Teraz możemy to zasymulować w kreatorze akcji, przechodząc tam i logując się, powiedzmy, że usuwamy tutaj D, 40 00:03:42,370 --> 00:03:49,350 aby na końcu był to nieprawidłowy adres URL. Jeśli teraz spróbujemy się zalogować tutaj, pojawia 41 00:03:52,500 --> 00:03:54,790 się ten błąd. 42 00:03:54,810 --> 00:03:55,340 Teraz 43 00:03:55,350 --> 00:04:01,920 to dobrze, ale są też inne rodzaje błędów, które chcę rozwiązać, na przykład co się stanie, jeśli 44 00:04:01,920 --> 00:04:08,930 zaloguję się przy użyciu adresu e-mail, który nie istnieje? Oczywiście chcę też pokazać użytkownikowi błąd i robię 45 00:04:08,930 --> 00:04:15,670 to, ale pokazuję tylko, że coś poszło nie tak, co nie jest dokładnie tym, co chciałbym pokazać. 46 00:04:15,700 --> 00:04:21,850 Teraz pokazuję ten błąd, ponieważ w kreatorze akcji tutaj, jeśli odpowiedź nie jest w porządku, rzucam coś poszło 47 00:04:21,850 --> 00:04:22,690 nie tak. 48 00:04:22,690 --> 00:04:27,910 Problem polega na tym, że wysyłamy niepoprawny adres e-mail lub nieprawidłowe hasło, przy 49 00:04:27,910 --> 00:04:35,410 okazji rejestracji, jeśli wyślemy coś, co nie jest e-mailem lub hasłem, które jest zbyt krótkie, jeśli tak się 50 00:04:35,410 --> 00:04:42,890 stanie, otrzymujemy odpowiedź z kodem stanu 400 coś, a my otrzymujemy pewne szczegóły błędu jako część odpowiedzi i 51 00:04:42,890 --> 00:04:43,750 teraz 52 00:04:43,760 --> 00:04:46,490 dzięki naszej obsłudze błędów, nie widzimy 53 00:04:46,740 --> 00:04:50,590 ich, więc musimy to zmienić. Zamiast natychmiast zgłaszać tutaj błąd, jeśli 54 00:04:50,600 --> 00:04:53,730 odpowiedź nie jest w porządku, nadal chcę się temu przyjrzeć. 55 00:04:53,870 --> 00:04:57,980 Więc będę mieć moje dane odpowiedzi na 56 00:04:57,980 --> 00:05:06,230 błąd, które otrzymam, czekając na odpowiedź JSON tutaj. Robię to samo, co w przypadku sukcesu, ale wyodrębniam je w 57 00:05:06,250 --> 00:05:09,550 innym polu, a teraz chcę konsolować rejestrować dane odpowiedzi 58 00:05:09,580 --> 00:05:12,710 na błąd, abyśmy mogli poczuć, jak to wygląda. 59 00:05:12,720 --> 00:05:20,680 Spróbujmy teraz wpisać adres e-mail, który już nie istnieje, a teraz otrzymujemy nasz dziwny błąd, który właśnie widzieliście, ale teraz mamy to interesujące 60 00:05:20,680 --> 00:05:25,600 wyjście i widzicie, że to jest błąd obiektu Firebase do mnie wrócił i oczywiście zależy 61 00:05:25,600 --> 00:05:26,870 to od interfejsu 62 00:05:26,920 --> 00:05:30,130 API, z którym rozmawiasz, jakiego rodzaju błąd się pojawia 63 00:05:30,130 --> 00:05:35,560 i kiedy go otrzymujesz oraz jakie szczegóły zawiera. To, jak widzisz, jest obiektem, który 64 00:05:35,560 --> 00:05:43,060 ma klucz błędu, który jest kolejnym obiektem, który ma kod błędu, kilka szczegółów na temat błędów, 65 00:05:43,060 --> 00:05:48,490 a następnie tę wiadomość, na przykład e-mail nie znaleziony i to jest 66 00:05:48,490 --> 00:05:53,060 część, która mnie interesuje. Nawiasem mówiąc, w oficjalnych dokumentach znajdziesz więcej potencjalnych identyfikatorów 67 00:05:53,080 --> 00:05:55,860 błędów, które możesz uzyskać. Tak 68 00:05:55,890 --> 00:06:04,800 więc w końcu chcę to teraz sprawdzić. Chcę uzyskać mój identyfikator błędu powiedzmy na podstawie danych odpowiedzi na błąd, uzyskując 69 00:06:04,800 --> 00:06:11,160 dostęp do pola błędu, które jest tym polem, które daje mi dostęp do tego obiektu, który następnie ma 70 00:06:11,160 --> 00:06:12,580 to pole komunikatu. 71 00:06:12,720 --> 00:06:19,470 Dlatego więc tutaj uzyskuję dostęp do wiadomości, aby ją otrzymać, a teraz możemy to sprawdzić, możemy sprawdzić, 72 00:06:20,040 --> 00:06:27,260 czy identyfikator błędu jest równy adresowi e-mail nie znaleziono. W takim przypadku chcę ustawić własną niestandardową wiadomość, 73 00:06:27,270 --> 00:06:33,090 więc tutaj dodam zmienną wiadomość, która domyślnie po prostu poszła nie tak, ale tutaj, jeśli 74 00:06:33,300 --> 00:06:38,580 wiemy, że problem polega na tym, że nie znaleźliśmy wiadomości e-mail adres, możemy powiedzieć, 75 00:06:38,610 --> 00:06:44,550 że nie można znaleźć tego adresu e-mail, a dodam więcej, jeśli czek będzie za sekundę. 76 00:06:44,550 --> 00:06:49,650 Więc to jest coś, co chcę sprawdzić tutaj i na koniec, dlatego mam komunikat, który teraz chcę 77 00:06:49,650 --> 00:06:50,100 wysłać, 78 00:06:50,130 --> 00:06:55,860 więc teraz wyrzucę nowy błąd z moją własną dostosowaną wiadomością. Więc kolejną sprawą, którą 79 00:06:55,860 --> 00:07:03,890 chcę dodać tutaj za pomocą instrukcji else / if, jest to, czy identyfikator 80 00:07:03,890 --> 00:07:15,050 błędu służy do logowania przy nieprawidłowym haśle powiedzmy. Mogę to sprawdzić i ustawić komunikat równy temu hasłu, który jest niepoprawny, a teraz 81 00:07:15,050 --> 00:07:16,480 spróbujmy jeszcze raz. 82 00:07:16,580 --> 00:07:23,240 Wróćmy i wprowadźmy adres e-mail, który nie istnieje, szybkie logowanie i otrzymujemy ten adres e-mail nie został znaleziony 83 00:07:23,250 --> 00:07:26,210 lub ten adres e-mail nie został znaleziony. 84 00:07:26,430 --> 00:07:35,030 Wypróbujmy teraz poprawny adres e-mail, ale tak naprawdę hasło jest nieprawidłowe, takie jak to i otrzymujemy to hasło 85 00:07:35,030 --> 00:07:36,550 jest nieprawidłowe, 86 00:07:36,590 --> 00:07:39,370 więc teraz dajemy użytkownikowi lepszą opinię. 87 00:07:39,410 --> 00:07:46,880 Teraz zaimplementujmy to samo do rejestracji, więc skopiuję to i przejdę do mojej skrzynki rejestracyjnej tu i tam, po 88 00:07:46,880 --> 00:07:49,310 prostu mam różne kody błędów, tam 89 00:07:49,310 --> 00:07:52,130 mam kody takie jak e-mail, jeśli ten 90 00:07:52,130 --> 00:07:54,270 adres e-mail już istnieje. 91 00:07:54,560 --> 00:08:02,370 Więc wyodrębniam mój identyfikator błędu w ten sam sposób, ale potem sprawdzam, czy istnieje wiadomość e-mail, a jeśli to jest błąd, mówię, że 92 00:08:03,300 --> 00:08:04,740 ten e-mail już istnieje. 93 00:08:08,000 --> 00:08:09,710 Teraz to właściwie jedyna 94 00:08:09,710 --> 00:08:15,830 rzecz, którą chcę tutaj sprawdzić, są też inne błędy, które możesz uzyskać, i możesz na przykład po prostu wyłączyć 95 00:08:15,830 --> 00:08:20,860 tutaj sprawdzanie poprawności i zobaczyć, jaki błąd się pojawia, jeśli wysyłasz nieprawidłowy e- adres e-mail, logując 96 00:08:20,870 --> 00:08:22,950 ten identyfikator błędu, a następnie możesz to 97 00:08:22,960 --> 00:08:28,850 sprawdzić, tutaj po prostu zaimplementuję tę wiadomość, a zatem teraz, jeśli spróbuję zarejestrować się tutaj przy użyciu adresu 98 00:08:28,850 --> 00:08:37,070 e-mail, którego już użyłem, w ten sposób otrzymam ten e-mail już istnieje. Z drugiej strony, jeśli użyję prawidłowego adresu e-mail, 99 00:08:37,100 --> 00:08:44,250 to oczywiście przechodzi on przez Firebase, a następnie, jeśli przejdziesz do uwierzytelnienia i 100 00:08:44,250 --> 00:08:47,530 odświeżysz to, zobaczysz drugiego użytkownika. 101 00:08:47,580 --> 00:08:52,040 W ten sposób możesz dodać ładujący mechanizm obrotowy i obsługę błędów z uwierzytelnianiem. 102 00:08:52,080 --> 00:08:57,420 To wszystko fajnie, ale teraz byłoby miło w końcu opuścić ten ekran i przejść do naszej aplikacji, a następnie 103 00:08:57,420 --> 00:08:59,670 zacząć pracować z tym tokenem, który otrzymujemy.