1 00:00:02,120 --> 00:00:07,130 Beginnen wir mit der Verwaltung des Ladezustands hier auf dem Authentifizierungsbildschirm, da ich dem Benutzer natürlich ein 2 00:00:07,130 --> 00:00:10,570 Feedback geben möchte, wenn wir gerade auf eine Antwort warten. 3 00:00:10,670 --> 00:00:17,060 Dazu können wir den Aktivitätsindikator, den Sie bereits kennen, importieren und den Ladezustand hier verwalten, indem 4 00:00:17,810 --> 00:00:26,990 wir hier einen weiteren Zustand hinzufügen, isLoading, und isLoading setzen, das wir auf false initialisieren, da wir anfänglich nicht laden und jetzt hier, 5 00:00:26,990 --> 00:00:36,470 wenn wir uns in dieser Authentifizierung befinden Handler, ich kann hier asynchron hinzufügen, da die Anmeldung hier natürlich ein Versprechen zurückgibt, das gleiche gilt 6 00:00:37,370 --> 00:00:39,860 für die Anmeldung. Daher geben 7 00:00:39,920 --> 00:00:46,040 diese Funktionen des Erstellers von Aktionen Versprechen zurück. Wir können also auf das Ergebnis des Versands 8 00:00:46,070 --> 00:00:52,820 warten, das letztendlich diese Versprechen verwendet, die wir erhalten, und im Grunde genommen den gesamten Prozess einleitet. Bevor wir darauf 9 00:00:52,820 --> 00:00:56,890 warten, kann ich isLoading auf true setzen. Wenn wir also den gesamten 10 00:00:56,900 --> 00:01:02,720 Prozess starten, bevor wir eine Anfrage senden und setzen Sie danach isLoading auf false, sobald wir mit dieser 11 00:01:02,840 --> 00:01:06,480 Anforderung fertig sind, unabhängig davon, ob sie fehlgeschlagen ist oder nicht. 12 00:01:07,720 --> 00:01:10,320 Und jetzt kann isLoading verwendet werden, um einen 13 00:01:10,330 --> 00:01:15,760 Ladespinner anzuzeigen. Es liegt an Ihnen, wo Sie dies anzeigen. Sie können beispielsweise sagen, dass Sie diese 14 00:01:15,760 --> 00:01:17,890 Anmeldeschaltfläche durch den Ladespinner ersetzen möchten. 15 00:01:17,890 --> 00:01:21,420 Hier könnten wir also sagen, wenn isLoading wahr ist, möchte ich 16 00:01:21,490 --> 00:01:25,010 den Aktivitätsindikator so anzeigen, andernfalls werde ich die Schaltfläche anzeigen, 17 00:01:25,090 --> 00:01:27,520 also ist dies die Syntax, die wir 18 00:01:27,520 --> 00:01:29,590 verwenden könnten, setzen Sie die 19 00:01:29,590 --> 00:01:38,510 Größe hier auf klein und die Farbe auf Farben. primär sagen wir mal. Wenn wir das versuchen und 20 00:01:38,510 --> 00:01:47,660 zurückgehen, hier auf iOS, wenn ich mich einlogge, sehe ich tatsächlich den Ladespinner und dann bin ich zurück, 21 00:01:47,900 --> 00:01:54,800 damit das funktioniert, jetzt für die Fehlerbehandlung. 22 00:01:54,800 --> 00:01:54,800 Für die Fehlerbehandlung erfahren Sie auch, wie das funktioniert. 23 00:01:54,830 --> 00:01:58,900 Natürlich können Sie Ihren Fehlerstatus auch hier verwalten. Sie 24 00:01:58,940 --> 00:02:05,180 können auch wieder den Reduzierer verwenden, um das Laden und den Fehlerstatus in 25 00:02:05,180 --> 00:02:06,250 einem 26 00:02:06,470 --> 00:02:11,540 Objekt zusammenzuführen. Ich mache das jedoch so: Fehler und setze Fehler 27 00:02:11,570 --> 00:02:22,010 mithilfe des Verwendungsstatus, der anfangs nicht funktioniert Weisen Sie keinen Wert zu, damit dieser anfangs undefiniert ist. Dann können wir hier versuchen, 28 00:02:22,010 --> 00:02:27,140 diesen Versand hier abzufangen, wo wir einen potenziellen Fehler erhalten, und 29 00:02:27,140 --> 00:02:34,640 unseren Fehler auf diese Fehlermeldung setzen, die wir zurückerhalten, und bevor wir die Anfrage senden. Ich 30 00:02:34,640 --> 00:02:41,420 möchte meinen Fehler auch auf null zurücksetzen. Jetzt speichern wir hier einen potenziellen Fehler in Set Error und ich 31 00:02:41,610 --> 00:02:45,620 möchte nur eine Warnung auslösen und dem Benutzer eine Warnung anzeigen, wenn wir einen Fehler erhalten. 32 00:02:45,630 --> 00:02:52,110 Dazu müssen Sie sicherstellen, dass Sie eine Warnung aus React Native importieren und auch 33 00:02:52,110 --> 00:02:58,860 den Effekt aus "Reagieren" verwenden, da wir mit dem Verwendungseffekt auf Änderungen im Fehlerstatus 34 00:02:58,860 --> 00:03:09,340 reagieren und die Fehlerwarnung anzeigen können, wenn ein Fehler auftritt. Vielleicht können wir hier nach dem Einrichten des Reduzierers den Verwendungseffekt hinzufügen, und meine Abhängigkeit 35 00:03:09,340 --> 00:03:14,620 hier ist die Fehlerzustandsvariable oder -konstante. Wenn wir einen Fehler haben, wenn dies wahr ist, 36 00:03:14,620 --> 00:03:23,190 möchte ich eine Warnung mit der Warnung anzeigen API, bei der ich sage, dass ein Fehler aufgetreten ist und meine Nachricht der Fehler ist, der 37 00:03:23,910 --> 00:03:29,580 eine Zeichenfolge sein sollte, und ich werde eine Schaltfläche hinzufügen, in der ich den Text OK habe, 38 00:03:29,940 --> 00:03:34,840 und natürlich können Sie weitere Schaltflächen hinzufügen, in denen Sie verschiedene Dinge tun. 39 00:03:34,930 --> 00:03:41,950 Jetzt können wir dies im Aktionsersteller simulieren, indem wir dorthin gehen und uns anmelden. Nehmen wir an, wir entfernen das D 40 00:03:42,370 --> 00:03:49,350 hier, sodass dies am Ende eine falsche URL ist. Wenn wir uns jetzt hier anmelden, wird 41 00:03:52,500 --> 00:03:54,790 dieser Fehler angezeigt. 42 00:03:54,810 --> 00:03:55,340 Das 43 00:03:55,350 --> 00:04:01,920 ist gut so, aber es gibt auch andere Arten von Fehlern, die ich behandeln möchte, zum Beispiel, wenn 44 00:04:01,920 --> 00:04:08,930 ich mich mit einer E-Mail-Adresse anmelde, die es nicht gibt. Natürlich möchte ich dem Benutzer auch einen Fehler anzeigen, 45 00:04:08,930 --> 00:04:15,670 aber ich zeige nur, dass etwas schief gelaufen ist, was nicht genau der Fehler ist, den ich anzeigen möchte. 46 00:04:15,700 --> 00:04:21,850 Jetzt zeige ich diesen Fehler, weil im Aktionsersteller hier, wenn die Antwort nicht in Ordnung ist, etwas schief 47 00:04:21,850 --> 00:04:22,690 gelaufen ist. 48 00:04:22,690 --> 00:04:27,910 Das Problem ist jetzt, wenn wir eine falsche E-Mail oder ein falsches Passwort senden, auch 49 00:04:27,910 --> 00:04:35,410 übrigens für die Anmeldung, wenn wir etwas senden, das keine E-Mail oder ein zu kurzes Passwort ist. Wenn dies passiert, werden 50 00:04:35,410 --> 00:04:42,890 wir es tun Erhalten Sie eine Antwort mit einem Statuscode von 400 zurück und wir erhalten einige Fehlerdetails als Teil der 51 00:04:42,890 --> 00:04:43,750 Antwort. Im 52 00:04:43,760 --> 00:04:46,490 Moment sehen wir diese bei unserer Fehlerbehandlung nicht, 53 00:04:46,740 --> 00:04:50,590 daher müssen wir dies ändern. Anstatt hier sofort einen Fehler zu werfen, 54 00:04:50,600 --> 00:04:53,730 wenn die Antwort nicht in Ordnung ist, möchte ich ihn trotzdem untersuchen. 55 00:04:53,870 --> 00:04:57,980 Ich werde also meine Fehlerantwortdaten haben, die ich 56 00:04:57,980 --> 00:05:06,230 erhalte, wenn ich hier auf die Antwort JSON warte. Also mache ich dasselbe wie im Erfolgsfall, aber ich extrahiere es in ein 57 00:05:06,250 --> 00:05:09,550 anderes Feld und jetzt möchte ich hier die Fehlerantwortdaten konsolidieren, 58 00:05:09,580 --> 00:05:12,710 damit wir ein Gefühl dafür bekommen, wie dies aussieht. 59 00:05:12,720 --> 00:05:20,680 Versuchen wir nun, eine E-Mail-Adresse einzugeben, die nicht mehr existiert. Jetzt erhalten wir unseren seltsamen Fehler, den Sie gerade gesehen haben. Jetzt haben wir diese interessante Ausgabe hier 60 00:05:20,680 --> 00:05:25,600 und Sie sehen, dass dies das Fehlerobjekt ist, das Firebase mir und natürlich zurückgegeben hat Dies hängt 61 00:05:25,600 --> 00:05:26,870 von der API ab, 62 00:05:26,920 --> 00:05:30,130 mit der Sie sprechen, welche Art von Fehler Sie erhalten und 63 00:05:30,130 --> 00:05:35,560 wann Sie ihn erhalten und welche Details er enthält. Wie Sie sehen, handelt es sich um ein 64 00:05:35,560 --> 00:05:43,060 Objekt mit einem Fehlerschlüssel, bei dem es sich um ein weiteres Objekt handelt, das einen Fehlercode, einige Details zu den Fehlern 65 00:05:43,060 --> 00:05:48,490 und dann die Meldung enthält, dass beispielsweise eine E-Mail nicht gefunden wurde, und das ist 66 00:05:48,490 --> 00:05:53,060 der Teil, der mich interessiert. In den offiziellen Dokumenten finden Sie übrigens weitere potenzielle 67 00:05:53,080 --> 00:05:55,860 Fehlerkennungen, die Sie möglicherweise erhalten. Am 68 00:05:55,890 --> 00:06:04,800 Ende möchte ich das jetzt überprüfen. Ich möchte meine Fehler-ID aus den Fehlerantwortdaten abrufen, indem ich auf 69 00:06:04,800 --> 00:06:11,160 das Fehlerfeld dort zugreife, das dieses Feld ist, das mir Zugriff auf dieses Objekt gibt, das dann 70 00:06:11,160 --> 00:06:12,580 dieses Nachrichtenfeld hat. 71 00:06:12,720 --> 00:06:19,470 Daher greife ich hier auf die Nachricht zu, um diese Nachricht zu erhalten, und jetzt können wir dies überprüfen. Wir können 72 00:06:20,040 --> 00:06:27,260 überprüfen, ob die Fehler-ID gleich der nicht gefundenen E-Mail ist. Wenn dies der Fall ist, möchte ich meine eigene angepasste 73 00:06:27,270 --> 00:06:33,090 Nachricht festlegen. Daher füge ich hier eine variable Nachricht hinzu, bei der standardmäßig nur ein Fehler aufgetreten ist. 74 00:06:33,300 --> 00:06:38,580 Wenn wir jedoch wissen, dass das Problem darin besteht, dass wir keine E-Mail gefunden haben Adresse, 75 00:06:38,610 --> 00:06:44,550 wir könnten sagen, dass diese E-Mail nicht gefunden wurde und ich werde mehr hinzufügen, wenn in einer Sekunde überprüft. 76 00:06:44,550 --> 00:06:49,650 Dies ist also etwas, das ich hier überprüfen möchte, und am Ende habe ich daher eine Nachricht, die ich jetzt werfen möchte. 77 00:06:49,650 --> 00:06:50,100 Jetzt 78 00:06:50,130 --> 00:06:55,860 werde ich jedoch einen neuen Fehler mit meiner eigenen angepassten Nachricht auslösen. Eine weitere Überprüfung, die 79 00:06:55,860 --> 00:07:03,890 ich hier mit einer else / if-Anweisung hinzufügen möchte, ist, ob die Fehler-ID 80 00:07:03,890 --> 00:07:15,050 für die Anmeldung eines ungültigen Kennworts bestimmt ist. Also kann ich das überprüfen und die Nachricht gleich setzen, dass dieses Passwort ungültig ist. Jetzt versuchen 81 00:07:15,050 --> 00:07:16,480 wir es noch einmal. 82 00:07:16,580 --> 00:07:23,240 Gehen wir zurück und geben eine E-Mail-Adresse ein, die nicht existiert. Melden Sie sich schnell an und wir erhalten, dass diese E-Mail-Adresse 83 00:07:23,250 --> 00:07:26,210 nicht gefunden wurde oder diese E-Mail nicht gefunden wurde. 84 00:07:26,430 --> 00:07:35,030 Versuchen wir nun eine gültige E-Mail-Adresse, aber tatsächlich ist ein Passwort, das ungültig ist, wie dieses, und wir erhalten, dass dieses Passwort nicht 85 00:07:35,030 --> 00:07:36,550 gültig ist, also 86 00:07:36,590 --> 00:07:39,370 geben wir dem Benutzer jetzt ein besseres Feedback. 87 00:07:39,410 --> 00:07:46,880 Lassen Sie uns jetzt dasselbe für die Anmeldung implementieren, also kopiere ich das und gehe hier und da zu meinem 88 00:07:46,880 --> 00:07:49,310 Anmeldefall. Ich habe nur verschiedene Fehlercodes. 89 00:07:49,310 --> 00:07:52,130 Dort habe ich Codes wie E-Mail, wenn 90 00:07:52,130 --> 00:07:54,270 diese E-Mail-Adresse bereits vorhanden ist. 91 00:07:54,560 --> 00:08:02,370 Also extrahiere ich meine Fehler-ID auf die gleiche Weise, aber dann überprüfe ich, ob E-Mails vorhanden sind. Wenn dies der Fehler ist, sage ich, dass diese 92 00:08:03,300 --> 00:08:04,740 E-Mail bereits vorhanden ist. 93 00:08:08,000 --> 00:08:09,710 Dies ist eigentlich das 94 00:08:09,710 --> 00:08:15,830 einzige, was ich hier überprüfen möchte. Es gibt auch andere Fehler, die auftreten können. Sie können beispielsweise einfach Ihre 95 00:08:15,830 --> 00:08:20,860 Validierung hier deaktivieren und sehen, welchen Fehler Sie erhalten, wenn Sie eine ungültige E-Mail senden. E-Mail-Adresse 96 00:08:20,870 --> 00:08:22,950 durch Protokollieren dieser Fehler-ID und dann können 97 00:08:22,960 --> 00:08:28,850 Sie auch danach suchen. Hier implementiere ich nur diese Nachricht. Wenn ich mich jetzt hier mit einer E-Mail-Adresse anmelde, 98 00:08:28,850 --> 00:08:37,070 die ich bereits verwendet habe, erhalte ich diese Diese E-Mail existiert bereits. Auf der anderen Seite, wenn ich natürlich eine gültige 99 00:08:37,100 --> 00:08:44,250 E-Mail-Adresse verwende, geht dies nur durch und auf Firebase. Wenn Sie zur Authentifizierung gehen und diese 100 00:08:44,250 --> 00:08:47,530 aktualisieren, sehen Sie tatsächlich diesen zweiten Benutzer. 101 00:08:47,580 --> 00:08:52,040 Auf diese Weise können Sie einen Ladespinner und eine Fehlerbehandlung mit Authentifizierung hinzufügen. 102 00:08:52,080 --> 00:08:57,420 Das ist alles schön, aber jetzt wäre es endlich schön, auch diesen Bildschirm zu verlassen und zu unserer App zu gehen und 103 00:08:57,420 --> 00:08:59,670 dann mit dem Token zu arbeiten, das wir bekommen.