1 00:00:02,200 --> 00:00:07,590 Wir fügen überall Token hinzu, was wichtig ist, aber für Bestellungen möchten wir nicht nur das 2 00:00:07,600 --> 00:00:11,800 Token anhängen, sondern auch sicherstellen, dass Bestellungen wirklich dem angemeldeten Benutzer gehören. 3 00:00:11,800 --> 00:00:17,080 Das Gute ist nun, dass wir die von Firebase generierte Benutzer-ID in unserem Redux-Store speichern. 4 00:00:17,080 --> 00:00:21,480 Die Zuordnung unserer Bestellungen zu Benutzern ist also nicht allzu schwierig. Wir erhalten hier Zugriff auf unseren vollständigen Shop, 5 00:00:21,520 --> 00:00:29,140 sodass wir die Benutzer-ID durch Aufrufen von getState abrufen können. auth. userId, das ist alles, 6 00:00:29,140 --> 00:00:33,270 dies gibt uns die userId des aktuell angemeldeten Benutzers 7 00:00:33,340 --> 00:00:40,030 und jetzt können wir diese hier einfügen und die fest codierte U1 durch userId ersetzen. 8 00:00:40,030 --> 00:00:46,840 Natürlich nicht nur zum Hinzufügen von Bestellungen, sondern auch zum Abrufen von Bestellungen, da wir die Bestellungen des 9 00:00:46,900 --> 00:00:49,060 aktuell angemeldeten Benutzers abrufen möchten. 10 00:00:49,060 --> 00:00:55,540 Lassen Sie uns hier auch das zweite Argument erhalten, unsere Benutzer-ID abrufen und hier einfache Anführungszeichen 11 00:00:55,540 --> 00:01:03,640 gegen Back-Ticks austauschen, damit wir diese dynamische, bequeme Injektion hier verwenden und sie dann durch Hinzufügen der Benutzer-ID ersetzen oder 12 00:01:03,640 --> 00:01:10,940 interpolieren können, wie sie hier als Zeichenfolge bezeichnet wird. So wird nun auch sichergestellt, dass die Bestellungen korrekt gespeichert werden, aber natürlich 13 00:01:10,940 --> 00:01:11,880 sind es nicht 14 00:01:11,900 --> 00:01:18,160 nur die Bestellungen, die Produkte sollten auch so gelagert werden. Wir sollten sicherstellen, dass wir beim 15 00:01:18,160 --> 00:01:23,000 Erstellen eines Produkts tatsächlich unsere Eigentümer-ID hinzufügen. Dies ist etwas, was 16 00:01:23,020 --> 00:01:26,960 wir derzeit nicht tun und was wir tun sollten. 17 00:01:27,100 --> 00:01:33,200 Hier möchte ich also auch die Benutzer-ID hier in Produkt erstellen erhalten. Wenn ich dann meine 18 00:01:33,370 --> 00:01:39,920 Anfrage zum Erstellen eines neuen Produkts sende, möchte ich nicht nur Titel, Beschreibung usw. festlegen, sondern auch 19 00:01:39,970 --> 00:01:48,130 einen Eigentümer festlegen Das ID-Feld und der genaue Name liegen bei Ihnen. Dies entspricht der Benutzer-ID des angemeldeten Benutzers. Das ist jetzt 20 00:01:48,130 --> 00:01:49,720 brandneu. Jetzt beginnen 21 00:01:49,720 --> 00:01:51,610 wir wirklich damit, Produkte einem 22 00:01:51,610 --> 00:01:59,560 Benutzer zuzuordnen, was wir bisher nur auf Dummy-Weise getan haben. Dies bedeutet übrigens auch, dass ich beim Versand eines 23 00:01:59,560 --> 00:02:05,980 Produkts hier eine neue Information weitergeben möchte, dort auch die Eigentümer-ID hinzufügen und hier auch 24 00:02:06,490 --> 00:02:11,520 auf die Benutzer-ID verweisen möchte. Dies bedeutet, dass im Produktreduzierer Wir müssen 25 00:02:11,890 --> 00:02:16,310 dies respektieren und dort, anstatt diese ID hier fest zu codieren, 26 00:02:16,540 --> 00:02:24,130 können wir dies jetzt aus unserer Aktion herausholen. productData, von der Eigentümer-ID dort, weil ich 27 00:02:24,580 --> 00:02:28,200 das gerade dort hinzugefügt habe. 28 00:02:28,210 --> 00:02:33,990 Also hier Produkte, ich habe Eigentümer-ID hinzugefügt, ich habe diesen Schlüssel zu Produktdaten hinzugefügt, zu der Aktion, die 29 00:02:34,090 --> 00:02:39,910 ich versende, jetzt im Reduzierer, wir müssen das verwenden, es hier extrahieren und das als Eigentümer-ID des Produkts 30 00:02:39,910 --> 00:02:42,230 verwenden, das wir lokal erstellen in Redux. 31 00:02:42,340 --> 00:02:49,780 Dies bedeutet natürlich auch, dass ich hier, wenn ich die Produkte erhalte, die diesem Benutzer gehören, auch sicherstellen möchte, 32 00:02:49,780 --> 00:02:53,190 dass ich richtig nach der richtigen ID filtere. 33 00:02:53,800 --> 00:02:58,960 Wenn wir hier Set-Produkte aufrufen, möchte ich sicherstellen, dass Benutzerprodukte wirklich auf 34 00:02:58,960 --> 00:03:07,540 den angemeldeten Benutzer heruntergefiltert werden. Wenn wir also im Produktaktionsersteller alle Produkte abrufen, möchte ich hier natürlich alle Produkte abrufen, aber 35 00:03:07,540 --> 00:03:16,190 Dort möchte ich auch meinen Status abrufen können, damit ich meine Benutzer-ID aus dem Status abrufen kann, da ich hier beim Erstellen 36 00:03:16,400 --> 00:03:21,920 der geladenen Produkte nicht nur diese weiterleiten, sondern auch einen neuen Benutzer hinzufügen 37 00:03:21,950 --> 00:03:28,350 möchte Produkte Schlüssel zu meinem Aktionsobjekt, wo ich die geladenen Produkte nehme und hier filtere ich 38 00:03:28,400 --> 00:03:37,590 und ich schaue mir jedes Produkt an und wenn die Eigentümer-ID des Produkts, wenn das gleich der Benutzer-ID ist, dann möchte ich es 39 00:03:37,650 --> 00:03:43,590 behalten, weil dann Es ist ein Produkt, das vom aktuell angemeldeten Benutzer erstellt wurde, andernfalls 40 00:03:43,590 --> 00:03:44,290 werde 41 00:03:44,340 --> 00:03:45,840 ich es nicht behalten. 42 00:03:45,840 --> 00:03:51,040 Es ist immer noch Teil des geladenen Produkts, das ich an das Produkt übergebe, aber nicht Teil 43 00:03:51,040 --> 00:03:52,510 der Produkte, die ich 44 00:03:52,860 --> 00:03:58,170 an Benutzerprodukte übergeben habe. Dadurch kann ich zum Reduzierer zurückkehren und dort in festgelegten Produkten werden Benutzerprodukte nicht 45 00:03:58,200 --> 00:04:04,860 durch Filtern hier, sondern durch Festlegen initialisiert Es entspricht Aktionsbenutzerprodukten, die jetzt die gefilterten Produkte verwenden, die im Aktionsersteller mit der Logik 46 00:04:05,160 --> 00:04:12,290 gefiltert wurden, die wir gerade geschrieben haben, wo wir die Benutzer-ID verwenden. Dies stellt sicher, dass wir nur die 47 00:04:12,560 --> 00:04:18,260 Produkte sehen, die wir wirklich erstellt haben, und nicht die Produkte anderer Benutzer. 48 00:04:18,270 --> 00:04:25,310 Jetzt können wir natürlich auch sicherstellen, dass wir in unserem Produktgeschäft hier nicht 49 00:04:25,310 --> 00:04:28,460 mit unseren Dummy-Produkten beginnen, sondern 50 00:04:28,460 --> 00:04:37,440 in beiden Fällen tatsächlich mit einem leeren Array. Dies bedeutet natürlich auch, dass wir jetzt, wenn wir dies speichern und 51 00:04:37,440 --> 00:04:41,230 uns anmelden, in der Lage sein sollten, unser vorheriges Produkt 52 00:04:41,310 --> 00:04:42,020 anzuzeigen. 53 00:04:42,030 --> 00:04:45,010 Hier ist es, aber wenn ich zum Administrator 54 00:04:45,090 --> 00:04:50,340 gehe, sehen wir es dort nicht und das macht sehr viel Sinn, weil Dieses 55 00:04:50,340 --> 00:04:58,650 Produkt wurde früher im Kurs erstellt und hat daher keine Eigentümer-ID. Dieses Produkt hat keine Besitzer-ID, daher ist es in keinem Benutzerprodukt enthalten, was großartig ist, da 56 00:04:58,650 --> 00:05:01,980 ich jetzt ein schönes Beispiel dafür habe, dass es noch keine Produkte gibt. 57 00:05:02,010 --> 00:05:04,190 Vielleicht sollten wir hier auch eine Nachricht anzeigen. 58 00:05:04,320 --> 00:05:07,050 Als Randnotiz in Bestellungen sehen wir auch nichts 59 00:05:07,050 --> 00:05:12,720 und vielleicht sollten wir auch hier eine Nachricht anzeigen, da Bestellungen für U1 jetzt keine gültige Benutzer-ID mehr sind, 60 00:05:12,720 --> 00:05:13,450 sodass diese 61 00:05:13,470 --> 00:05:18,680 Bestellungen für keinen Benutzer geladen werden und das ist gut so das ist wie es sein sollte. 62 00:05:18,680 --> 00:05:23,840 Jetzt werde ich diese Seiten ein wenig optimieren, um eine Meldung anzuzeigen, wenn wir keine Daten laden können. 63 00:05:23,870 --> 00:05:32,620 Wenn also hier im Benutzerproduktbildschirm die Länge der Benutzerprodukte gleich Null ist, möchte ich meine flache Liste nicht zurückgeben, sondern hier eine Ansicht zurückgeben, in 64 00:05:32,620 --> 00:05:41,090 der ich einen Text habe, in dem ich sage, dass möglicherweise keine Produkte gefunden wurden Beginnen Sie mit dem Erstellen einiger Stile, und wir 65 00:05:41,110 --> 00:05:46,810 müssen dort einige Stile einrichten. Außerdem müssen wir die Ansicht und den Text importieren, da wir dies 66 00:05:46,820 --> 00:05:49,520 sonst nicht anzeigen können. Jetzt mache ich 67 00:05:49,520 --> 00:05:51,460 hier nur noch ein 68 00:05:51,680 --> 00:05:59,060 schnelles und schmutziges Inline-Styling mit Flex One Content Center und Align Items Center. Natürlich können Sie hier auch dem Text Ihre 69 00:05:59,090 --> 00:06:04,340 eigene Schriftart zuweisen. Ich mache das einfach so und kopiere es dann und verschiebe es 70 00:06:04,340 --> 00:06:09,070 auf den Bestellbildschirm. Stellen Sie sicher, dass Sie die Ansicht anzeigen und Text 71 00:06:09,170 --> 00:06:12,060 auch dort und dann können wir hier auch 72 00:06:12,110 --> 00:06:18,350 diesen Scheck hinzufügen, wenn die Länge der Benutzerprodukte leer ist, sollten wir hier natürlich die Länge der Bestellungen 73 00:06:18,410 --> 00:06:24,010 überprüfen, nicht die Länge der Benutzerprodukte, aber wenn diese leer ist, sage ich, dass keine Bestellungen 74 00:06:24,110 --> 00:06:28,910 gefunden wurden, beginnen Sie vielleicht mit der Bestellung Einige Produkte wie dieses und damit 75 00:06:28,910 --> 00:06:31,940 sollten wir diesen Text sehen, wenn nichts gefunden wird. 76 00:06:31,940 --> 00:06:41,090 Wenn ich das jetzt noch einmal versuche und mich ganz schnell anmelde und wir zur Administrationsseite gehen, sehen wir den Text hier und wenn wir 77 00:06:41,160 --> 00:06:42,630 zur Bestellseite gehen, 78 00:06:42,630 --> 00:06:44,540 sehen wir auch den Text hier. 79 00:06:44,640 --> 00:06:46,460 Jetzt funktioniert es so, wie es sollte. 80 00:06:46,620 --> 00:06:55,470 Wenn ich jetzt andererseits ein neues Produkt erstelle, zum Beispiel einen Schal, sagen wir mal mit einer netten kleinen 81 00:06:55,470 --> 00:07:03,190 URL, die ich für 55 Dollar ausgewählt habe. 99, ein Wollschal, wenn ich das mache und dies einreiche, 82 00:07:03,210 --> 00:07:12,060 funktioniert das gut und es erscheint auch hier unter admin, erscheint auch unter Produkten, wir könnten es natürlich auch dort herausfiltern, wenn Sie 83 00:07:12,060 --> 00:07:16,650 wollten, aber warum nicht, warum Haben wir es nicht auch hier und 84 00:07:16,650 --> 00:07:18,290 wenn ich es 85 00:07:18,380 --> 00:07:26,840 in den Warenkorb lege und jetzt auf Bestellung klicke, jetzt hier unter Bestellungen, sehen wir es und auf Firebase sehen wir auch, 86 00:07:26,840 --> 00:07:32,460 dass wir unter Bestellungen jetzt einen Knoten mit unserer Benutzer-ID mit unserer haben Aufträge. 87 00:07:32,490 --> 00:07:35,670 Das funktioniert jetzt wirklich so, wie es hier in dieser Anwendung 88 00:07:35,670 --> 00:07:39,960 sein sollte, und deshalb haben wir jetzt hier ein Setup, mit dem wir arbeiten können.