1 00:00:02,200 --> 00:00:07,590 Dodajemy tokeny wszędzie, co jest ważne, ale w przypadku zamówień nie chcemy tylko dołączać tokena, 2 00:00:07,600 --> 00:00:11,800 chcemy również upewnić się, że zamówienia naprawdę należą do zalogowanego użytkownika. 3 00:00:11,800 --> 00:00:17,080 Teraz dobrze, że przechowujemy identyfikator użytkownika, który Firebase wygenerował w naszym sklepie Redux. 4 00:00:17,080 --> 00:00:21,480 Dlatego mapowanie naszych zamówień do użytkowników nie jest zbyt trudne, uzyskujemy dostęp do naszego pełnego sklepu tutaj, 5 00:00:21,520 --> 00:00:29,140 dzięki czemu możemy uzyskać identyfikator użytkownika, dzwoniąc do getState. auth. userId, to wszystko, to 6 00:00:29,140 --> 00:00:33,270 daje nam identyfikator użytkownika aktualnie zalogowanego użytkownika, 7 00:00:33,340 --> 00:00:40,030 a teraz możemy to wstawić tutaj i zastąpić U1 na stałe identyfikatorem użytkownika. 8 00:00:40,030 --> 00:00:46,840 Oczywiście nie tylko do dodawania zamówień, ale także do pobierania zamówień, ponieważ chcemy pobrać 9 00:00:46,900 --> 00:00:49,060 zamówienia aktualnie zalogowanego użytkownika. 10 00:00:49,060 --> 00:00:55,540 Więc tutaj, otrzymamy również ten drugi argument, pobierz nasz identyfikator użytkownika i tutaj wymień pojedyncze 11 00:00:55,540 --> 00:01:03,640 cudzysłowy na tylne tiki, abyśmy mogli użyć tego dynamicznego wygodnego zastrzyku tutaj, a następnie zastąpić lub interpolować, jak to 12 00:01:03,640 --> 00:01:10,940 się nazywa ten ciąg tutaj, dodając userId. Dzięki temu teraz masz również pewność, że zamówienia są przechowywane poprawnie, 13 00:01:10,940 --> 00:01:11,880 ale oczywiście 14 00:01:11,900 --> 00:01:18,160 nie chodzi tylko o zamówienia, produkty też powinny być przechowywane. Powinniśmy się upewnić, że kiedy tworzymy produkt, 15 00:01:18,160 --> 00:01:23,000 faktycznie dodajemy do niego ID właściciela, to jest coś, czego obecnie 16 00:01:23,020 --> 00:01:26,960 nie robimy i to jest coś, co powinniśmy zrobić. 17 00:01:27,100 --> 00:01:33,200 Tak więc tutaj, tak naprawdę, chcę również uzyskać użytkownika w tym miejscu, aby utworzyć produkt, a 18 00:01:33,370 --> 00:01:39,920 kiedy następnie wysyłam prośbę o utworzenie nowego produktu, nie chcę tylko ustawić tytułu, opisu itd., Chcę również 19 00:01:39,970 --> 00:01:48,130 ustawić właściciela Pole identyfikatora i dokładna nazwa zależą od użytkownika, który jest równy identyfikatorowi użytkownika zalogowanego użytkownika i jest to teraz 20 00:01:48,130 --> 00:01:49,720 coś zupełnie nowego, 21 00:01:49,720 --> 00:01:51,610 teraz naprawdę zaczynamy mapować produkty 22 00:01:51,610 --> 00:01:59,560 na użytkownika, coś, co wcześniej robiliśmy tylko w sposób sztuczny. Oznacza to również, że kiedy wysyłamy tutaj tworzenie 23 00:01:59,560 --> 00:02:05,980 produktu, chcę przekazać nową informację, chcę również dodać tam identyfikator właściciela, a także wskazać 24 00:02:06,490 --> 00:02:11,520 tutaj identyfikator użytkownika, co oznacza, że w reduktorze produktów, musimy to 25 00:02:11,890 --> 00:02:16,310 uszanować i tam, zamiast na stałe wpisywać ten identyfikator tutaj, 26 00:02:16,540 --> 00:02:24,130 możemy teraz uzyskać to z naszej akcji. productData, z identyfikatora właściciela, ponieważ 27 00:02:24,580 --> 00:02:28,200 właśnie to tam dodałem. 28 00:02:28,210 --> 00:02:33,990 Więc tutaj produkty, dodałem identyfikator właściciela, dodałem ten klucz do danych produktu, do akcji, którą 29 00:02:34,090 --> 00:02:39,910 wysyłam, teraz w reduktorze, musimy go użyć, wyodrębnić tutaj i użyć jako identyfikatora właściciela produktu, 30 00:02:39,910 --> 00:02:42,230 który tworzymy lokalnie w Redux. 31 00:02:42,340 --> 00:02:49,780 Oczywiście oznacza to również, że tutaj, gdy otrzymam produkty należące do tego użytkownika, chcę również upewnić się, 32 00:02:49,780 --> 00:02:53,190 że odpowiednio filtruję pod kątem prawidłowego identyfikatora. 33 00:02:53,800 --> 00:02:58,960 Kiedy więc nazywamy tutaj ustawione produkty, chcę się upewnić, że produkty użytkownika 34 00:02:58,960 --> 00:03:07,540 są naprawdę filtrowane do zalogowanego użytkownika, więc w kreatorze działań dotyczących produktów, gdy pobieramy wszystkie produkty, tutaj oczywiście chcę pobrać 35 00:03:07,540 --> 00:03:16,190 wszystkie produkty, ale tam też chcę mieć możliwość uzyskania mojego stanu, dzięki czemu mogę uzyskać mój identyfikator użytkownika ze stanu, 36 00:03:16,400 --> 00:03:21,920 ponieważ wtedy, gdy tworzymy ładowane produkty, nie chcę ich tylko przesyłać dalej, chcę 37 00:03:21,950 --> 00:03:28,350 również dodać nowego użytkownika klucz produktów do mojego obiektu akcji, w którym biorę załadowane produkty 38 00:03:28,400 --> 00:03:37,590 i tutaj filtruję je i patrzę na każdy produkt, a jeśli identyfikator właściciela produktu, jeśli jest on równy identyfikatorowi użytkownika, to chcę 39 00:03:37,650 --> 00:03:43,590 go zachować, ponieważ wtedy jest to produkt stworzony przez aktualnie zalogowanego użytkownika, w przeciwnym 40 00:03:43,590 --> 00:03:44,290 razie 41 00:03:44,340 --> 00:03:45,840 nie zatrzymam go. 42 00:03:45,840 --> 00:03:51,040 Nadal jest częścią załadowanego produktu, który przekazuję do produktu, ale nie jest częścią produktów, które przekazałem 43 00:03:51,040 --> 00:03:52,510 do produktów użytkownika, co 44 00:03:52,860 --> 00:03:58,170 pozwala mi wrócić do reduktora i tam w zestawach produktów produkty użytkownika są inicjowane nie przez 45 00:03:58,200 --> 00:04:04,860 filtrowanie tutaj, ale przez ustawienie jest równy produktom użytkownika akcji, które teraz filtrują produkty filtrowane w kreatorze akcji z logiką, 46 00:04:05,160 --> 00:04:12,290 którą właśnie napisaliśmy w miejscu, w którym bierzemy identyfikator użytkownika. Dzięki temu widzimy tylko produkty, 47 00:04:12,560 --> 00:04:18,260 które naprawdę stworzyliśmy i nie widzimy produktu innych użytkowników. 48 00:04:18,270 --> 00:04:25,310 Nawiasem mówiąc, teraz możemy również upewnić się, że w naszym sklepie z produktami tutaj nie 49 00:04:25,310 --> 00:04:28,460 zaczynamy od naszych produktów zastępczych, ale 50 00:04:28,460 --> 00:04:37,440 faktycznie zaczynamy od pustej tablicy w obu przypadkach tutaj. Oznacza to również oczywiście, że teraz, jeśli zapiszemy to i zalogujemy 51 00:04:37,440 --> 00:04:41,230 się, powinniśmy móc zobaczyć nasz poprzedni produkt, oto jest, 52 00:04:41,310 --> 00:04:42,020 ale 53 00:04:42,030 --> 00:04:45,010 jeśli przejdę do administratora, nie zobaczymy 54 00:04:45,090 --> 00:04:50,340 go tam i to ma sens, ponieważ ten produkt został stworzony wcześniej 55 00:04:50,340 --> 00:04:58,650 w trakcie kursu i dlatego nie ma identyfikatora właściciela. Ten produkt nie ma identyfikatora właściciela, dlatego nie jest zawarty w żadnym produkcie użytkownika, co jest 56 00:04:58,650 --> 00:05:01,980 świetne, ponieważ teraz mam ładny przykład, że nie ma jeszcze żadnych produktów, 57 00:05:02,010 --> 00:05:04,190 być może powinniśmy również wyświetlić tutaj wiadomość. 58 00:05:04,320 --> 00:05:07,050 Na marginesie w zamówieniach również niczego nie widzimy 59 00:05:07,050 --> 00:05:12,720 i być może powinniśmy również wyświetlić tutaj komunikat, ponieważ zamówienia dla U1 nie są już prawidłowym identyfikatorem użytkownika, 60 00:05:12,720 --> 00:05:13,450 więc 61 00:05:13,470 --> 00:05:18,680 zamówienia te nigdy nie są ładowane dla żadnego użytkownika i to dobrze, ponieważ tak powinno być. 62 00:05:18,680 --> 00:05:23,840 Teraz po tym trochę poprawię te strony, aby wyświetlić komunikat, jeśli nie możemy załadować żadnych danych. 63 00:05:23,870 --> 00:05:32,620 Więc tutaj na ekranie produktu użytkownika, jeśli długość produktów użytkownika jest równa zero, to nie chcę zwracać mojej płaskiej listy, ale zamiast 64 00:05:32,620 --> 00:05:41,090 tego wrócę widok, w którym mam tekst, w którym mówię, że nie znaleziono produktów, może zacznij tworzyć niektóre i będziemy musieli skonfigurować 65 00:05:41,110 --> 00:05:46,810 tam style, musimy również zaimportować widok i tekst, w przeciwnym razie nie możemy tego wyświetlić, 66 00:05:46,820 --> 00:05:49,520 a teraz po prostu zrobię tutaj 67 00:05:49,520 --> 00:05:51,460 szybką i brudną stylizację 68 00:05:51,680 --> 00:05:59,060 za pomocą Flex One, uzasadnij centrum treści i wyrównaj centrum przedmiotów, oczywiście możesz również przypisać tutaj własną czcionkę do 69 00:05:59,090 --> 00:06:04,340 tekstu i tak dalej, po prostu zrobię to w ten sposób, a następnie 70 00:06:04,340 --> 00:06:09,070 skopiuję i przeniosę na ekran zamówień, upewnij się, że masz widok i 71 00:06:09,170 --> 00:06:12,060 tam też tekst, a następnie tutaj możemy 72 00:06:12,110 --> 00:06:18,350 dodać tę kontrolę, jeśli długość produktów użytkownika jest pusta, oczywiście tutaj powinniśmy sprawdzić długość zamówień, a 73 00:06:18,410 --> 00:06:24,010 nie długość produktów użytkownika, ale jeśli to jest puste, mówię, że nie znaleziono zamówień, 74 00:06:24,110 --> 00:06:28,910 może zacząć zamawiać niektóre produkty tego typu, a przy tym powinniśmy zobaczyć 75 00:06:28,910 --> 00:06:31,940 ten tekst, jeśli nic nie zostanie znalezione. 76 00:06:31,940 --> 00:06:41,090 Więc jeśli teraz spróbuję ponownie i zaloguję się naprawdę szybko i przejdziemy do strony administratora, zobaczymy tutaj tekst, a jeśli przejdziemy 77 00:06:41,160 --> 00:06:42,630 do strony zamówień, 78 00:06:42,630 --> 00:06:44,540 zobaczymy także tekst tutaj. 79 00:06:44,640 --> 00:06:46,460 Więc teraz działa tak, jak powinno. 80 00:06:46,620 --> 00:06:55,470 Jeśli teraz tworzę nowy produkt, na przykład szalik, powiedzmy z ładnym małym adresem URL, 81 00:06:55,470 --> 00:07:03,190 który wybrałem za 55 USD. 99, wełniany szalik, jeśli to zrobię i prześlę 82 00:07:03,210 --> 00:07:12,060 to, działa to dobrze i pokazuje się tutaj również pod adminem, pojawia się również pod produktami, możemy oczywiście również go 83 00:07:12,060 --> 00:07:16,650 odfiltrować, jeśli chcesz, ale dlaczego nie, dlaczego nie mamy go 84 00:07:16,650 --> 00:07:18,290 również tutaj i 85 00:07:18,380 --> 00:07:26,840 jeśli dodam to do koszyka i kliknę teraz zamówienie, teraz tutaj w ramach zamówień, widzimy to i w Firebase, 86 00:07:26,840 --> 00:07:32,460 widzimy również, że w ramach zamówień mamy teraz węzeł z naszym użytkownikiem Zamówienia. 87 00:07:32,490 --> 00:07:35,670 Teraz działa to tak, jak powinno, w 88 00:07:35,670 --> 00:07:39,960 tej aplikacji, a zatem tutaj mamy konfigurację, z którą możemy pracować.