1 00:00:02,240 --> 00:00:09,890 Teraz zastosujmy to, czego nauczyliśmy się podczas ostatnich wykładów w naszym projekcie sklepu, który zbudowaliśmy na cały ten kurs. 2 00:00:10,430 --> 00:00:17,870 Tutaj dostałem ten projekt ze zintegrowaną React Navigation pięć tak często w sekcji, w której pokazuję, jak 3 00:00:17,870 --> 00:00:20,670 zaktualizować, aby zareagować na nawigację pięć. 4 00:00:21,260 --> 00:00:23,480 I nic nie zmieniłem. 5 00:00:23,750 --> 00:00:27,530 To jest aplikacja, jaką znamy, działająca na symulatorach. 6 00:00:27,890 --> 00:00:34,040 I kochanie, możemy oczywiście utworzyć tutaj konto z pewnymi danymi uwierzytelniającymi. 7 00:00:34,640 --> 00:00:36,410 Przede wszystkim muszę się zarejestrować. 8 00:00:37,380 --> 00:00:41,460 A teraz tutaj możemy dodawać produkty i tak dalej. 9 00:00:41,730 --> 00:00:46,350 Teraz mój pomysł jest martwy, gdy dodamy tutaj produkt. 10 00:00:46,710 --> 00:00:54,120 W rzeczywistości nie przechowujemy produktu ze wszystkimi danymi, które przesyłamy do tej pory, kiedy 11 00:00:54,120 --> 00:00:57,960 tworzymy produkt, udostępniamy tytuł, opis, zdjęcie. 12 00:00:57,990 --> 00:01:05,970 Jesteś El Price i jesteś właścicielem I. RE. Ale zamiast tego, oprócz udostępniania tego 13 00:01:05,970 --> 00:01:10,530 wszystkiego, chcę również dodać token push urządzenia użytkownika, który dodał jego produkt. 14 00:01:10,770 --> 00:01:15,750 Aby odepchnąć Tolkana od sprzedawcy, chcę to również dodać do produktu. 15 00:01:16,170 --> 00:01:16,710 Czemu? 16 00:01:17,060 --> 00:01:23,700 Dzięki temu, gdy pobieramy dane produktu, możemy również pobrać token push należący do produktu. 17 00:01:24,270 --> 00:01:30,960 I chociaż nie pokażemy tego innym użytkownikom, użyjemy go w kodzie, aby zapewnić, że kiedy 18 00:01:30,960 --> 00:01:35,280 zamówienie zostanie złożone, kiedy dodamy zamówienie, nie tylko przechowujemy. 19 00:01:35,280 --> 00:01:44,100 Tata zamówił dane w bazie danych, ale wysyłamy również powiadomienie push do właściciela właśnie 20 00:01:44,130 --> 00:01:49,740 zamówionego produktu, informując go, że produkt został zamówiony. 21 00:01:50,100 --> 00:01:51,570 To mój pomysł tutaj. 22 00:01:53,060 --> 00:01:58,820 To oczywiście oznacza, że będziemy musieli przeanalizować przedmioty znajdujące się w koszyku, a następnie zasadniczo 23 00:01:58,880 --> 00:02:01,750 wyślemy powiadomienie push dla każdego produktu. 24 00:02:01,910 --> 00:02:02,840 To mój pomysł. 25 00:02:03,780 --> 00:02:09,740 Aby dług mógł się upewnić, że to zadziała, musimy przede wszystkim się przygotować. 26 00:02:09,810 --> 00:02:12,120 Projektuje powiadomienia push. 27 00:02:14,240 --> 00:02:22,100 Oznacza to, że przede wszystkim powinniśmy przejść do App Jason i dodać tutaj wpis Androida, w 28 00:02:22,100 --> 00:02:28,030 którym powiedzieliśmy, że należy użyć interfejsu API następnych powiadomień, aby był prawdziwy. 29 00:02:28,400 --> 00:02:31,430 Właśnie to pokazałem wam w innych wykładach. 30 00:02:32,030 --> 00:02:35,090 Wszyscy musimy poprosić użytkownika o zgodę. 31 00:02:35,600 --> 00:02:38,210 Pytanie brzmi, gdzie chcemy to zrobić. 32 00:02:38,210 --> 00:02:40,600 Oczywiście, ponieważ to Steve. 33 00:02:40,640 --> 00:02:44,690 Twórca produktu, który powinien otrzymywać powiadomienia push. 34 00:02:45,110 --> 00:02:50,270 Zapytam o pozwolenie tuż przed stworzeniem nowego produktu. 35 00:02:50,750 --> 00:02:57,260 Mamy więc naszego użytkownika, nasz ekran dodanych produktów, w którym tworzymy nowy produkt. 36 00:03:00,100 --> 00:03:07,660 I tam w końcu uruchamiamy akcję w produktach, które James tutaj uruchomi, tworzy akcję 37 00:03:07,660 --> 00:03:08,650 produktu. 38 00:03:09,220 --> 00:03:12,550 A teraz moje pomysły, które proszę o pozwolenie tutaj. 39 00:03:12,940 --> 00:03:19,600 Następnie pobieram token tutaj, a następnie możemy dodać token do danych wychodzących wysyłanych na 40 00:03:19,600 --> 00:03:20,470 serwer. 41 00:03:21,540 --> 00:03:31,380 Dlatego po pierwsze, Expo zainstaluj pakiet powiadomień Expo, a także uprawnienia Expo. 42 00:03:32,190 --> 00:03:36,420 A następnie zastosujmy oba, tak jak dowiedzieliśmy się o wykładach w tym module. 43 00:03:38,870 --> 00:03:44,090 Więc z tym zainstalowanym tutaj i stwórz produkt, zanim zrobimy cokolwiek innego. 44 00:03:45,160 --> 00:03:53,320 Chcemy korzystać z interfejsu API powiadomień i do tego musimy zaimportować wszystko jako powiadomienia. 45 00:03:54,580 --> 00:03:55,240 Z. 46 00:03:57,070 --> 00:04:05,110 Powiadomienia o wystawach, a to także już importuje wszystko jako uprawnienia z uprawnień do wystaw. 47 00:04:05,680 --> 00:04:15,300 A dzięki tym dwóm interfejs API jest importowany w produkcie create, możemy użyć powiadomień, aby uzyskać nasz token push expo. 48 00:04:15,700 --> 00:04:18,850 Jednak, jak wiesz, nie chcemy tego bezpośrednio robić. 49 00:04:18,970 --> 00:04:26,170 Zamiast tego chcemy przede wszystkim sprawdzić status uprawnień, więc powinniśmy korzystać z uprawnień i 50 00:04:26,560 --> 00:04:30,610 uzyskać informacje o tych uprawnieniach do powiadomień. 51 00:04:31,150 --> 00:04:32,350 To zwraca obietnicę. 52 00:04:32,440 --> 00:04:35,980 A ponieważ mamy tutaj funkcję asynchroniczną, możemy po prostu na nią poczekać. 53 00:04:36,880 --> 00:04:44,140 Teraz otrzymamy obiekt martwego stanu, który ma tę właściwość statusu, która mówi nam, czy zezwolenie 54 00:04:44,140 --> 00:04:46,180 zostało udzielone, czy nie. 55 00:04:46,810 --> 00:04:49,570 Możemy więc sprawdzić, czy obiekt statusu. 56 00:04:50,430 --> 00:04:56,190 Status DOT może nie zostać przyznany, co oznacza, że nie mamy jeszcze uprawnień. 57 00:04:56,760 --> 00:05:03,450 Następnie chcemy ponownie użyć interfejsu API uprawnień, aby poprosić o pozwolenie na powiadomienia. 58 00:05:03,540 --> 00:05:04,440 Z tym kodem. 59 00:05:04,830 --> 00:05:06,660 I to wszystko, co mieliśmy wcześniej. 60 00:05:06,780 --> 00:05:09,740 Teraz wystarczy asynchronicznie czekać zamiast tego. 61 00:05:09,990 --> 00:05:11,700 Ale poza tym jest tak samo. 62 00:05:12,570 --> 00:05:16,470 I tutaj znów otrzymamy nasz status. 63 00:05:16,890 --> 00:05:17,490 Obiekt. 64 00:05:18,690 --> 00:05:22,100 Teraz, ponieważ mielibyśmy konflikt nazwisk, wszyscy jesteście nazwani w tym roku. 65 00:05:22,230 --> 00:05:23,970 Zaktualizowany obiekt statusu. 66 00:05:25,630 --> 00:05:31,000 I oczywiście tutaj też powinniśmy poczekać, ponieważ tata jest synchroniczny i zwraca obietnicę. 67 00:05:31,840 --> 00:05:40,210 W tym momencie możemy teraz sprawdzić, czy zaktualizowany obiekt statusu ma status. 68 00:05:41,190 --> 00:05:42,780 To nie jest równe przyznanemu. 69 00:05:42,930 --> 00:05:47,910 W takim przypadku wiemy, że nie będziemy mogli wysyłać powiadomień push. 70 00:05:50,190 --> 00:05:52,050 I tata jest absolutnie w porządku. 71 00:05:52,410 --> 00:06:01,440 Po prostu utworzę tutaj zmienną tokena i ustawię token na wartość Knol tutaj, aby było bardzo jasne, że po prostu nie 72 00:06:01,440 --> 00:06:03,180 mamy tutaj tokena. 73 00:06:03,390 --> 00:06:06,780 Właściwie nie nazywajmy jego tokena, ponieważ już użyliśmy tej nazwy. 74 00:06:06,990 --> 00:06:07,560 Nazwijmy to. 75 00:06:08,010 --> 00:06:08,970 Wciśnij token. 76 00:06:09,150 --> 00:06:11,190 Ponieważ w końcu chcemy odzyskać tatę. 77 00:06:12,090 --> 00:06:17,610 Ustawiliśmy więc na zero, jeśli absolutnie nie otrzymaliśmy pozwolenia, ponieważ w tym przypadku nie możemy nic 78 00:06:17,610 --> 00:06:21,840 zrobić, ponieważ po prostu nie mamy pozwolenia na wysyłanie powiadomień push. 79 00:06:22,110 --> 00:06:23,070 Jest jak jest. 80 00:06:24,220 --> 00:06:27,570 Ale w przypadku ELT tata robi to. 81 00:06:28,000 --> 00:06:36,970 W takim przypadku możemy ustawić nasz token push równy powiadomieniu Stotz uzyskać XPO Push, asynchronizacja Tolkana i oczywiście, 82 00:06:36,970 --> 00:06:38,530 to obietnica. 83 00:06:38,830 --> 00:06:40,570 Powinniśmy więc na to poczekać. 84 00:06:40,960 --> 00:06:43,780 Oczywiście nie otrzymujemy tokena bezpośrednio. 85 00:06:44,560 --> 00:06:47,980 Zamiast tego otrzymujemy obiekt, który ma pole danych, jeśli pamiętasz. 86 00:06:48,370 --> 00:06:52,360 Więc możemy zawinąć to tutaj w nawiasy i wywołać dane na ten temat. 87 00:06:53,050 --> 00:06:56,080 Oznacza to po prostu, że przede wszystkim ta obietnica została spełniona. 88 00:06:56,230 --> 00:07:02,680 Następnie wywołujemy dane dotyczące rozstrzygniętego obiektu po tym, jak oczekujemy, że obieca i zobaczy wartość w danych, które 89 00:07:02,680 --> 00:07:05,020 następnie przechowujemy w zmiennej tokena push. 90 00:07:05,710 --> 00:07:08,680 Więc tutaj będziemy mieli nasz token push, którego potrzebujemy. 91 00:07:09,370 --> 00:07:12,130 Teraz, kiedy to mamy, możemy kontynuować. 92 00:07:12,400 --> 00:07:13,420 A ponieważ czekaliśmy. 93 00:07:13,450 --> 00:07:16,780 Ten kod zostanie wykonany tylko po zakończeniu taty. 94 00:07:17,170 --> 00:07:19,170 Oczywiście tę linię należy teraz usunąć. 95 00:07:19,810 --> 00:07:26,050 A teraz, z danymi, które wysłaliśmy na serwer, nie wysyłamy tylko opisu tytułu, 96 00:07:26,050 --> 00:07:29,130 właściciela I. RE. , ale także token push właściciela. 97 00:07:29,800 --> 00:07:31,840 I to będzie nasz żeton push tutaj. 98 00:07:34,480 --> 00:07:38,990 I to albo teraz, albo to nasz token, który otrzymaliśmy od XPO. 99 00:07:40,860 --> 00:07:47,790 Tak więc teraz, gdy tworzymy nowy produkt, idealnie możemy wysłać nasz token push. 100 00:07:48,210 --> 00:07:53,220 Teraz otrzymujesz, że to Tolkan, a to wszystko nie będzie działać na symulatorach, jak się dowiedziałeś. 101 00:07:53,450 --> 00:07:57,420 Tak więc, Dan, dla wszystkich zabezpieczeń i znowu, test jest na moim prawdziwym iPhonie. 102 00:07:57,900 --> 00:08:03,090 Ponownie uruchomiłem aplikację i właśnie zalogowałem się z utworzonym przez nas użytkownikiem. 103 00:08:03,570 --> 00:08:09,120 A teraz w ramach Admon stworzę nowy produkt. 104 00:08:10,230 --> 00:08:10,890 Tolkan. 105 00:08:17,570 --> 00:08:19,520 Teraz musimy sobie wyobrazić, że jesteś el. 106 00:08:21,430 --> 00:08:23,560 Właśnie złapałem jakiś losowy obraz. 107 00:08:24,550 --> 00:08:26,080 I Ellender, nagroda tutaj. 108 00:08:27,350 --> 00:08:28,340 I opis. 109 00:08:30,540 --> 00:08:36,870 Potwierdziłem to i otrzymuję błąd, tata, zaktualizowany obiekt statusu nie został znaleziony, a dług ma sens, 110 00:08:36,870 --> 00:08:42,810 ponieważ tak naprawdę ustawiam to tutaj jako czek, ale potem używam go poza bezpiecznym czekiem 111 00:08:42,810 --> 00:08:43,270 . 112 00:08:43,270 --> 00:08:47,430 Oczywiście ma to niewłaściwy zakres, niewielki nadzór z mojej strony. 113 00:08:47,820 --> 00:08:53,820 Możemy to naprawić, ponownie wykorzystując tutaj obiekt statusu, zmieniając go w zmienną z 114 00:08:53,820 --> 00:08:54,300 let. 115 00:08:54,870 --> 00:09:02,040 Następnie tutaj po prostu ustawiamy nasz obiekt statusu na nową wartość, a następnie ponownie używamy stanu jako obiektu. 116 00:09:02,040 --> 00:09:03,090 Oto jeśli czek. 117 00:09:03,390 --> 00:09:05,600 Teraz zakres jest odpowiedni i to zadziała. 118 00:09:07,950 --> 00:09:09,090 Spróbujmy więc jeszcze raz. 119 00:09:13,390 --> 00:09:20,560 Wciśnij, przetestuj wstawiony obraz, który wybrał, wstaw cenę i opis. 120 00:09:21,370 --> 00:09:23,770 To jest test. 121 00:09:24,460 --> 00:09:26,290 Następnie zamknij to potwierdź. 122 00:09:26,860 --> 00:09:28,480 A teraz wydaje się, że to działa. 123 00:09:28,540 --> 00:09:29,770 Dodałem mój produkt. 124 00:09:30,810 --> 00:09:34,350 I co będzie teraz interesujące, będzie nasza baza danych. 125 00:09:35,030 --> 00:09:36,940 Oto moja baza danych FIREBASE. 126 00:09:37,020 --> 00:09:40,840 Dlatego używamy zaplecza i tutaj dodano nowy produkt. 127 00:09:41,160 --> 00:09:44,170 I rzeczywiście, tutaj znów widzimy nasz żeton push. 128 00:09:44,490 --> 00:09:47,640 Dodałem nakładkę na mój rzeczywisty token urządzenia. 129 00:09:47,880 --> 00:09:55,050 Ale jest to teraz token push, który pozwala nam wysłać powiadomienie do użytkownika, który utworzył ten produkt. 130 00:09:55,530 --> 00:10:02,460 Więc teraz popracujmy nad tą drugą częścią i upewnijmy się, że rzeczywiście wysyłamy powiadomienie, 131 00:10:02,490 --> 00:10:04,470 gdy faktycznie zamówimy produkt.