1 00:00:02,240 --> 00:00:09,890 Wenden wir nun an, was wir in den letzten Vorlesungen in unserem Shop-Projekt gelernt haben, das wir für all diesen Kurs erstellt haben. 2 00:00:10,430 --> 00:00:17,870 Hier habe ich dieses Projekt mit React Navigation Five so oft in einem Abschnitt integriert, in dem ich zeige, wie man ein Upgrade 3 00:00:17,870 --> 00:00:20,670 durchführt, um auf React Navigation 5 zu reagieren. 4 00:00:21,260 --> 00:00:23,480 Und ich habe nichts anderes geändert. 5 00:00:23,750 --> 00:00:27,530 Das ist also die App, wie wir sie kennen, die auf den Simulatoren läuft. 6 00:00:27,890 --> 00:00:34,040 Und Liebes, wir können hier natürlich ein Konto mit einigen Anmeldeinformationen erstellen. 7 00:00:34,640 --> 00:00:36,410 Zuerst muss ich mich anmelden. 8 00:00:37,380 --> 00:00:41,460 Und jetzt können wir hier Produkte hinzufügen und so weiter. 9 00:00:41,730 --> 00:00:46,350 Jetzt ist meine Idee tot, als wir hier ein Produkt hinzufügen. 10 00:00:46,710 --> 00:00:54,120 Wir speichern das Produkt nicht nur mit allen Daten, die wir bisher hochladen. Wenn wir ein 11 00:00:54,120 --> 00:00:57,960 Produkt erstellen, teilen wir Titel, Beschreibung und Bild. 12 00:00:57,990 --> 00:01:05,970 Sie sind El Price und Eigentümer I. D. D. Stattdessen möchte ich nicht nur all das teilen, 13 00:01:05,970 --> 00:01:10,530 sondern auch den Push-Token vom Gerät des Benutzers hinzufügen, der sein Produkt hinzugefügt hat. 14 00:01:10,770 --> 00:01:15,750 Um Tolkan vom Verkäufer abzuhalten, möchte ich das auch dem Produkt hinzufügen. 15 00:01:16,170 --> 00:01:16,710 Warum? 16 00:01:17,060 --> 00:01:23,700 Wenn wir die Produktdaten abrufen, können wir auch das Push-Token herunterladen, das zu einem Produkt gehört. 17 00:01:24,270 --> 00:01:30,960 Und obwohl wir es den anderen Benutzern nicht zeigen, verwenden wir es im Code, um sicherzustellen, dass wir beim 18 00:01:30,960 --> 00:01:35,280 Aufgeben einer Bestellung und beim Hinzufügen einer Bestellung nicht nur speichern. 19 00:01:35,280 --> 00:01:44,100 Papa hat Daten in der Datenbank bestellt, aber wir senden auch eine Push-Benachrichtigung an den Besitzer des Produkts, das 20 00:01:44,130 --> 00:01:49,740 gerade bestellt wurde, und teilen ihm mit, dass das Produkt bestellt wurde. 21 00:01:50,100 --> 00:01:51,570 Das ist meine Idee hier. 22 00:01:53,060 --> 00:01:58,820 Das bedeutet natürlich, dass wir die Artikel im Warenkorb analysieren müssen und dann grundsätzlich für 23 00:01:58,880 --> 00:02:01,750 jedes Produkt eine Push-Benachrichtigung senden müssen. 24 00:02:01,910 --> 00:02:02,840 Das ist meine Idee. 25 00:02:03,780 --> 00:02:09,740 Damit Schulden sicherstellen können, dass dies funktioniert, müssen wir uns zunächst vorbereiten. 26 00:02:09,810 --> 00:02:12,120 Projekt für Push-Benachrichtigungen. 27 00:02:14,240 --> 00:02:22,100 Das bedeutet, dass wir zuallererst zu App Jason gehen und diesen Android-Eintrag hier hinzufügen sollten, 28 00:02:22,100 --> 00:02:28,030 wo wir sagten, dass die nächste Benachrichtigungs-API auf true gesetzt ist. 29 00:02:28,400 --> 00:02:31,430 Das habe ich Ihnen auch in den anderen Vorträgen gezeigt. 30 00:02:32,030 --> 00:02:35,090 Wir alle müssen den Benutzer um Erlaubnis bitten. 31 00:02:35,600 --> 00:02:38,210 Die Frage ist also, wo wir das machen wollen. 32 00:02:38,210 --> 00:02:40,600 Natürlich, da es Steve ist. 33 00:02:40,640 --> 00:02:44,690 Ersteller eines Produkts, das Push-Benachrichtigungen erhalten soll. 34 00:02:45,110 --> 00:02:50,270 Ich werde um Erlaubnis bitten, bevor wir ein neues Produkt erstellen. 35 00:02:50,750 --> 00:02:57,260 Wir haben also unseren Benutzer, unseren hinzugefügten Produktbildschirm, auf dem wir ein neues Produkt erstellen. 36 00:03:00,100 --> 00:03:07,660 Und dort lösen wir am Ende eine Aktion in der Produktdatei aus, die die James-Datei hier auslöst, um eine Produktaktion 37 00:03:07,660 --> 00:03:08,650 zu erstellen. 38 00:03:09,220 --> 00:03:12,550 Und jetzt meine Ideen, die ich hier um Erlaubnis bitte. 39 00:03:12,940 --> 00:03:19,600 Ich hole dann auch das Token hier ab und dann können wir den ausgehenden Daten, die an den Server gesendet werden, ein 40 00:03:19,600 --> 00:03:20,470 Token hinzufügen. 41 00:03:21,540 --> 00:03:31,380 Lassen Sie uns daher zunächst das Expo-Benachrichtigungspaket und auch die Expo-Berechtigungen installieren. 42 00:03:32,190 --> 00:03:36,420 Und dann verwenden wir beide, so wie wir es in den Vorlesungen in diesem Modul gelernt haben. 43 00:03:38,870 --> 00:03:44,090 Wenn dies hier installiert ist, erstellen Sie ein Produkt, bevor wir etwas anderes tun. 44 00:03:45,160 --> 00:03:53,320 Wir möchten die Benachrichtigungs-API verwenden und müssen dafür alles als Benachrichtigungen importieren. 45 00:03:54,580 --> 00:03:55,240 Von. 46 00:03:57,070 --> 00:04:05,110 Expo-Benachrichtigungen, und das importiert auch schon alles als Berechtigungen aus Expo-Berechtigungen. 47 00:04:05,680 --> 00:04:15,300 Und mit diesen beiden wird die API in create product importiert. Wir können Benachrichtigungen verwenden, um unser Expo-Push-Token zu erhalten. 48 00:04:15,700 --> 00:04:18,850 Wie Sie wissen, wollen wir das jedoch nicht direkt tun. 49 00:04:18,970 --> 00:04:26,170 Stattdessen möchten wir zunächst den Berechtigungsstatus überprüfen, damit wir Berechtigungen verwenden 50 00:04:26,560 --> 00:04:30,610 und Informationen zu diesen Benachrichtigungsberechtigungen erhalten. 51 00:04:31,150 --> 00:04:32,350 Dies gibt ein Versprechen zurück. 52 00:04:32,440 --> 00:04:35,980 Und da wir hier in der asynchronen Funktion sind, können wir es einfach abwarten. 53 00:04:36,880 --> 00:04:44,140 Was wir jetzt zurückbekommen, ist ein totes Statusobjekt, das diese Statuseigenschaft hat, die uns sagt, ob eine Berechtigung 54 00:04:44,140 --> 00:04:46,180 erteilt wurde oder nicht. 55 00:04:46,810 --> 00:04:49,570 So können wir prüfen, ob Statusobjekt. 56 00:04:50,430 --> 00:04:56,190 Der Status von DOT wird möglicherweise nicht gewährt, was bedeutet, dass wir noch keine Berechtigungen haben. 57 00:04:56,760 --> 00:05:03,450 Dann möchten wir die Berechtigungs-API erneut verwenden, um diese Benachrichtigungsberechtigung anzufordern. 58 00:05:03,540 --> 00:05:04,440 Mit diesem Code. 59 00:05:04,830 --> 00:05:06,660 Und das war alles genau das, was wir vorher hatten. 60 00:05:06,780 --> 00:05:09,740 Jetzt nur mit asynchronem Warten statt dann. 61 00:05:09,990 --> 00:05:11,700 Aber anders als das ist es das gleiche. 62 00:05:12,570 --> 00:05:16,470 Und hier bekommen wir wieder unseren Status. 63 00:05:16,890 --> 00:05:17,490 Objekt. 64 00:05:18,690 --> 00:05:22,100 Nun, da wir einen Namenskonflikt haben würden, seid ihr alle dieses Jahr benannt. 65 00:05:22,230 --> 00:05:23,970 Statusobjekt aktualisiert. 66 00:05:25,630 --> 00:05:31,000 Und natürlich sollten wir hier auch warten, denn Papa ist synchron und es gibt ein Versprechen zurück. 67 00:05:31,840 --> 00:05:40,210 Zu diesem Zeitpunkt können wir hier also überprüfen, ob das aktualisierte Statusobjekt einen Status hat. 68 00:05:41,190 --> 00:05:42,780 Das ist nicht gleich selbstverständlich. 69 00:05:42,930 --> 00:05:47,910 In diesem Fall wissen wir, dass wir keine Push-Benachrichtigungen senden können. 70 00:05:50,190 --> 00:05:52,050 Und Papa ist absolut in Ordnung. 71 00:05:52,410 --> 00:06:01,440 Ich werde hier einfach eine Token-Variable erstellen und das Token hier gleich Knol setzen, um deutlich zu machen, dass wir hier 72 00:06:01,440 --> 00:06:03,180 einfach kein Token haben. 73 00:06:03,390 --> 00:06:06,780 Nennen wir das Token eigentlich nicht, da wir diesen Namen bereits verwendet haben. 74 00:06:06,990 --> 00:06:07,560 Nennen wir es. 75 00:06:08,010 --> 00:06:08,970 Token drücken. 76 00:06:09,150 --> 00:06:11,190 Weil Papa das ist, was wir am Ende abrufen wollen. 77 00:06:12,090 --> 00:06:17,610 Deshalb setzen wir uns hier auf null, wenn wir absolut keine Erlaubnis erhalten haben, weil wir in diesem Fall 78 00:06:17,610 --> 00:06:21,840 nichts tun können, weil wir dann einfach keine Erlaubnis haben, Push-Benachrichtigungen zu senden. 79 00:06:22,110 --> 00:06:23,070 Es ist was es ist. 80 00:06:24,220 --> 00:06:27,570 Aber im Fall der ELT wird Papa gewährt. 81 00:06:28,000 --> 00:06:36,970 In diesem Fall können wir unser Push-Token gleich der Benachrichtigung setzen, dass Stotz XPO Push erhält, Tolkan async und das ist 82 00:06:36,970 --> 00:06:38,530 natürlich ein Versprechen. 83 00:06:38,830 --> 00:06:40,570 Also sollten wir das abwarten. 84 00:06:40,960 --> 00:06:43,780 Und natürlich bekommen wir den Token nicht direkt. 85 00:06:44,560 --> 00:06:47,980 Stattdessen erhalten wir ein Objekt mit einem Datenfeld, wenn Sie sich erinnern. 86 00:06:48,370 --> 00:06:52,360 Und so könnten wir dies hier in Klammern setzen und Daten dazu aufrufen. 87 00:06:53,050 --> 00:06:56,080 Das bedeutet einfach, dass dieses Versprechen zunächst einmal gelöst wird. 88 00:06:56,230 --> 00:07:02,680 Dann rufen wir Daten für das aufgelöste Objekt auf, nachdem wir darauf gewartet haben, dass es den Wert in den Daten verspricht und 89 00:07:02,680 --> 00:07:05,020 anzeigt, die wir dann in der Push-Token-Variablen speichern. 90 00:07:05,710 --> 00:07:08,680 Hier haben wir also unseren Push-Token, den wir brauchen. 91 00:07:09,370 --> 00:07:12,130 Wenn wir das haben, können wir weitermachen. 92 00:07:12,400 --> 00:07:13,420 Und da haben wir gewartet. 93 00:07:13,450 --> 00:07:16,780 Dieser Code wird erst ausgeführt, wenn Papa fertig ist. 94 00:07:17,170 --> 00:07:19,170 Diese Zeile sollte jetzt natürlich entfernt werden. 95 00:07:19,810 --> 00:07:26,050 Und jetzt senden wir mit den Daten, die wir an den Server gesendet haben, nicht nur die Titelbeschreibung, den 96 00:07:26,050 --> 00:07:29,130 Eigentümer I. D. D. , aber auch der Besitzer Push Token. 97 00:07:29,800 --> 00:07:31,840 Und das wird unser Push-Token hier sein. 98 00:07:34,480 --> 00:07:38,990 Und das ist entweder jetzt oder es ist unser Token, das wir von XPO erhalten haben. 99 00:07:40,860 --> 00:07:47,790 Wenn wir jetzt ein neues Produkt erstellen, können wir im Idealfall unseren Push-Token mitschicken. 100 00:07:48,210 --> 00:07:53,220 Nun, das ist Tolkan und all das funktioniert nicht mit Simulatoren, wie Sie gelernt haben. 101 00:07:53,450 --> 00:07:57,420 Also, Dan, für alle Sicherheiten und wieder ist der Test auf meinem echten iPhone. 102 00:07:57,900 --> 00:08:03,090 Also habe ich meine App wieder hier hochgefahren und mich gerade mit dem Benutzer angemeldet, den wir erstellt haben. 103 00:08:03,570 --> 00:08:09,120 Und jetzt werde ich unter Admon einen neuen Produkt-Push erstellen. 104 00:08:10,230 --> 00:08:10,890 Tolkan. 105 00:08:17,570 --> 00:08:19,520 Jetzt müssen wir uns vorstellen, dass Sie el sind. 106 00:08:21,430 --> 00:08:23,560 Und ich habe gerade ein zufälliges Bild aufgenommen. 107 00:08:24,550 --> 00:08:26,080 Und Ellender, ein Preis hier. 108 00:08:27,350 --> 00:08:28,340 Und eine Beschreibung. 109 00:08:30,540 --> 00:08:36,870 Und dies bestätigt und ich erhalte eine Fehlermeldung, Papa, das aktualisierte Statusobjekt wurde nicht gefunden und die Verschuldung ist 110 00:08:36,870 --> 00:08:42,810 sinnvoll, da ich dies hier in einem Scheck setze, aber dann verwende ich es außerhalb des sicheren Schecks 111 00:08:42,810 --> 00:08:43,270 . 112 00:08:43,270 --> 00:08:47,430 Das hat natürlich den falschen Umfang, wenig Versehen von meiner Seite. 113 00:08:47,820 --> 00:08:53,820 Wir können dies beheben, indem wir das Statusobjekt hier oben tatsächlich wiederverwenden, indem wir es stattdessen mit let in eine Variable 114 00:08:53,820 --> 00:08:54,300 umwandeln. 115 00:08:54,870 --> 00:09:02,040 Dann setzen wir hier einfach unser Statusobjekt auf einen neuen Wert und verwenden dann wieder state als Objekt. 116 00:09:02,040 --> 00:09:03,090 Hier ist wenn überprüfen. 117 00:09:03,390 --> 00:09:05,600 Jetzt ist der Umfang richtig und das wird funktionieren. 118 00:09:07,950 --> 00:09:09,090 Versuchen wir es also noch einmal. 119 00:09:13,390 --> 00:09:20,560 Drücken Sie, testen Sie das eingefügte Bild, das ausgewählt hat, fügen Sie einen Preis und eine Beschreibung ein. 120 00:09:21,370 --> 00:09:23,770 Dies ist ein Test. 121 00:09:24,460 --> 00:09:26,290 Dann schließen Sie, um dies zu bestätigen. 122 00:09:26,860 --> 00:09:28,480 Und jetzt scheint das zu funktionieren. 123 00:09:28,540 --> 00:09:29,770 Ich habe mein Produkt hinzugefügt. 124 00:09:30,810 --> 00:09:34,350 Und was jetzt interessant sein wird, ist unsere Datenbank. 125 00:09:35,030 --> 00:09:36,940 Hier ist meine FIREBASE-Datenbank. 126 00:09:37,020 --> 00:09:40,840 Also das Backend, das wir verwenden und ein neues Produkt wurde hier hinzugefügt. 127 00:09:41,160 --> 00:09:44,170 Und tatsächlich sehen wir hier wieder unseren Push-Token. 128 00:09:44,490 --> 00:09:47,640 Ich habe ein Overlay über meinem eigentlichen Geräte-Token hinzugefügt. 129 00:09:47,880 --> 00:09:55,050 Dies ist jetzt ein Push-Token, mit dem wir eine Benachrichtigung an den Benutzer senden können, der dieses Produkt erstellt hat. 130 00:09:55,530 --> 00:10:02,460 Lassen Sie uns nun an diesem anderen Teil arbeiten und sicherstellen, dass wir tatsächlich eine Benachrichtigung senden, sobald 131 00:10:02,490 --> 00:10:04,470 wir tatsächlich ein Produkt bestellen.