1 00:00:02,240 --> 00:00:09,890 Maintenant, appliquons ce que nous avons appris au cours des dernières conférences de notre projet d'atelier que nous avons construit pour tout ce cours. 2 00:00:10,430 --> 00:00:17,870 Ici, j'ai eu ce projet avec React Navigation Five intégré si souvent dans une section où je montre comment 3 00:00:17,870 --> 00:00:20,670 mettre à niveau pour React Navigation Five. 4 00:00:21,260 --> 00:00:23,480 Et je n'ai rien changé d'autre. 5 00:00:23,750 --> 00:00:27,530 Voici donc l'application telle que nous la connaissons, fonctionnant sur les simulateurs. 6 00:00:27,890 --> 00:00:34,040 Et cher, nous pouvons bien sûr créer un compte avec des informations d'identification ici. 7 00:00:34,640 --> 00:00:36,410 Tout d'abord, je dois m'inscrire. 8 00:00:37,380 --> 00:00:41,460 Et maintenant, ici, nous pouvons ajouter des produits et ainsi de suite. 9 00:00:41,730 --> 00:00:46,350 Maintenant, mon idée est morte lorsque nous ajoutons un produit ici. 10 00:00:46,710 --> 00:00:54,120 En fait, nous ne stockons pas seulement le produit avec toutes les données que nous téléchargeons jusqu'à présent, lorsque nous 11 00:00:54,120 --> 00:00:57,960 créons un produit, nous partageons le titre, la description, l'image. 12 00:00:57,990 --> 00:01:05,970 Vous êtes El Price et propriétaire I. RÉ. Mais à la place, en plus de partager tout 13 00:01:05,970 --> 00:01:10,530 cela, je veux également ajouter le jeton push sur l'appareil de l'utilisateur qui a ajouté son produit. 14 00:01:10,770 --> 00:01:15,750 Donc, pour pousser Tolkan hors du vendeur, je veux également l'ajouter au produit. 15 00:01:16,170 --> 00:01:16,710 Pourquoi? 16 00:01:17,060 --> 00:01:23,700 Ainsi, lorsque nous récupérons les données du produit, nous pouvons également télécharger le jeton push qui appartient à un produit. 17 00:01:24,270 --> 00:01:30,960 Et bien que nous ne le montrions pas aux autres utilisateurs, nous l'utiliserons dans le code pour nous assurer que lorsqu'une commande 18 00:01:30,960 --> 00:01:35,280 est passée, lorsque nous ajoutons une commande, nous ne nous contentons pas de stocker. 19 00:01:35,280 --> 00:01:44,100 Papa a commandé des données dans la base de données, mais nous envoyons également une notification push au propriétaire du produit qui 20 00:01:44,130 --> 00:01:49,740 vient d'être commandé pour lui faire savoir que le produit a été commandé. 21 00:01:50,100 --> 00:01:51,570 C'est mon idée ici. 22 00:01:53,060 --> 00:01:58,820 Cela signifie, bien sûr, que nous devrons analyser les articles qui sont dans le panier, puis nous 23 00:01:58,880 --> 00:02:01,750 enverrons une notification push pour chaque produit, essentiellement. 24 00:02:01,910 --> 00:02:02,840 Voilà mon idée. 25 00:02:03,780 --> 00:02:09,740 Donc, pour que la dette s'assure que cela fonctionne, nous devons d'abord nous préparer. 26 00:02:09,810 --> 00:02:12,120 Projette des notifications push. 27 00:02:14,240 --> 00:02:22,100 Cela signifie que nous devons tout d'abord aller sur App Jason et ajouter cette entrée Android ici 28 00:02:22,100 --> 00:02:28,030 où nous avons dit utiliser la prochaine API de notifications à true. 29 00:02:28,400 --> 00:02:31,430 C'est ce que je vous ai montré auparavant dans les autres conférences également. 30 00:02:32,030 --> 00:02:35,090 Nous devons tous demander la permission à l'utilisateur. 31 00:02:35,600 --> 00:02:38,210 La question est donc de savoir où nous voulons le faire. 32 00:02:38,210 --> 00:02:40,600 Bien sûr, puisque c'est Steve. 33 00:02:40,640 --> 00:02:44,690 Créateur d'un produit qui devrait recevoir des notifications push. 34 00:02:45,110 --> 00:02:50,270 Je vais demander la permission juste avant de créer un nouveau produit. 35 00:02:50,750 --> 00:02:57,260 Nous avons donc notre utilisateur, notre écran de produit ajouté, où nous créons un nouveau produit. 36 00:03:00,100 --> 00:03:07,660 Et là, à la fin, nous déclenchons une action dans le produit que le fichier James déclenchera ici créera une 37 00:03:07,660 --> 00:03:08,650 action produit. 38 00:03:09,220 --> 00:03:12,550 Et maintenant, mes idées que je demande la permission ici. 39 00:03:12,940 --> 00:03:19,600 Je récupère ensuite le jeton ici, puis nous pouvons ajouter un jeton aux données sortantes envoyées 40 00:03:19,600 --> 00:03:20,470 au serveur. 41 00:03:21,540 --> 00:03:31,380 Par conséquent, nous allons tout d'abord, Expo installer le package de notifications Expo ainsi que les autorisations Expo. 42 00:03:32,190 --> 00:03:36,420 Et ensuite, utilisons les deux comme nous l'avons appris au cours des conférences de ce module. 43 00:03:38,870 --> 00:03:44,090 Donc, avec cela installé ici et créez le produit avant de faire quoi que ce soit d'autre. 44 00:03:45,160 --> 00:03:53,320 Nous voulons utiliser l'API de notifications, et pour cela, nous devons tout importer en tant que notifications. 45 00:03:54,580 --> 00:03:55,240 De. 46 00:03:57,070 --> 00:04:05,110 Notifications Expo, et c'est aussi déjà tout importer en tant qu'autorisations à partir des autorisations Expo. 47 00:04:05,680 --> 00:04:15,300 Et avec ces deux, l'API est importée dans le produit de création, nous pouvons utiliser des notifications pour obtenir notre jeton expo push. 48 00:04:15,700 --> 00:04:18,850 Cependant, comme vous le savez, nous ne voulons pas directement le faire. 49 00:04:18,970 --> 00:04:26,170 Au lieu de cela, nous voulons tout d'abord vérifier l'état des autorisations, nous devons donc utiliser les autorisations 50 00:04:26,560 --> 00:04:30,610 et obtenir les informations sur l'autorisation de ces notifications. 51 00:04:31,150 --> 00:04:32,350 Cela renvoie une promesse. 52 00:04:32,440 --> 00:04:35,980 Et puisque nous sommes ici dans la fonction asynchrone, nous pouvons simplement l'attendre. 53 00:04:36,880 --> 00:04:44,140 Maintenant, ce que nous allons récupérer est un objet d'état mort, qui a cette propriété d'état qui nous indique si une autorisation 54 00:04:44,140 --> 00:04:46,180 a été accordée ou non. 55 00:04:46,810 --> 00:04:49,570 Nous pouvons donc vérifier si l'objet d'état. 56 00:04:50,430 --> 00:04:56,190 Le statut de DOT n'est peut-être pas accordé, ce qui signifie que nous n'avons pas encore d'autorisations. 57 00:04:56,760 --> 00:05:03,450 Ensuite, nous voulons utiliser à nouveau l'API des autorisations pour demander l'autorisation de ces notifications. 58 00:05:03,540 --> 00:05:04,440 Avec ce code. 59 00:05:04,830 --> 00:05:06,660 Et c'est tout ce que nous avions avant. 60 00:05:06,780 --> 00:05:09,740 Maintenant, juste avec async, attendez au lieu d’alors. 61 00:05:09,990 --> 00:05:11,700 Mais à part ça, c'est la même chose. 62 00:05:12,570 --> 00:05:16,470 Et ici, nous obtiendrons à nouveau notre statut. 63 00:05:16,890 --> 00:05:17,490 Objet. 64 00:05:18,690 --> 00:05:22,100 Maintenant, puisque nous aurions un conflit de noms, vous êtes tous nommés cette année. 65 00:05:22,230 --> 00:05:23,970 Objet d'état mis à jour. 66 00:05:25,630 --> 00:05:31,000 Et bien sûr, ici, nous devons également attendre, car papa est synchrone et il renvoie une promesse. 67 00:05:31,840 --> 00:05:40,210 Donc, à ce stade, nous pouvons maintenant vérifier si l'objet d'état mis à jour a un état. 68 00:05:41,190 --> 00:05:42,780 Ce n'est pas égal à accordé. 69 00:05:42,930 --> 00:05:47,910 Et si c'est le cas, nous savons que nous ne pourrons pas envoyer de notifications push. 70 00:05:50,190 --> 00:05:52,050 Et papa va très bien. 71 00:05:52,410 --> 00:06:01,440 Je vais simplement créer une variable de jeton ici et définir un jeton égal à Knol ici pour qu'il soit très clair que nous n'avons tout 72 00:06:01,440 --> 00:06:03,180 simplement pas de jeton ici. 73 00:06:03,390 --> 00:06:06,780 En fait, ne nommons pas son jeton car nous avons déjà utilisé ce nom. 74 00:06:06,990 --> 00:06:07,560 Appelons-le. 75 00:06:08,010 --> 00:06:08,970 Poussez le jeton. 76 00:06:09,150 --> 00:06:11,190 Parce que papa est ce que nous voulons récupérer à la fin. 77 00:06:12,090 --> 00:06:17,610 Nous nous sommes donc mis à null ici si nous n'avons absolument pas obtenu l'autorisation, car nous ne pouvons rien faire 78 00:06:17,610 --> 00:06:21,840 dans ce cas, car nous n'avons alors tout simplement pas l'autorisation d'envoyer des notifications push. 79 00:06:22,110 --> 00:06:23,070 C'est ce que c'est. 80 00:06:24,220 --> 00:06:27,570 Mais dans le cas de l'ELT, papa le fait. 81 00:06:28,000 --> 00:06:36,970 Dans ce cas, nous pouvons définir notre jeton push égal à la notification Stotz get XPO Push, Tolkan async et bien sûr, 82 00:06:36,970 --> 00:06:38,530 c'est une promesse. 83 00:06:38,830 --> 00:06:40,570 Nous devons donc attendre cela. 84 00:06:40,960 --> 00:06:43,780 Et bien sûr, nous n'obtenons pas directement le jeton. 85 00:06:44,560 --> 00:06:47,980 Au lieu de cela, nous obtenons un objet qui a un champ de données, si vous vous en souvenez. 86 00:06:48,370 --> 00:06:52,360 Et donc nous pourrions envelopper ici entre crochets et appeler des données à ce sujet. 87 00:06:53,050 --> 00:06:56,080 Cela signifie simplement que tout d’abord, cette promesse est tenue. 88 00:06:56,230 --> 00:07:02,680 Ensuite, nous appelons des données sur l'objet résolu après l'avoir attendu pour promettre et voir la valeur dans les données, que nous 89 00:07:02,680 --> 00:07:05,020 stockons ensuite dans la variable push token. 90 00:07:05,710 --> 00:07:08,680 Nous avons donc ici notre jeton push, dont nous avons besoin. 91 00:07:09,370 --> 00:07:12,130 Maintenant, quand nous avons cela, nous pouvons continuer. 92 00:07:12,400 --> 00:07:13,420 Et puisque nous étions en attente. 93 00:07:13,450 --> 00:07:16,780 Ce code ne s'exécutera qu'une fois que papa aura terminé. 94 00:07:17,170 --> 00:07:19,170 Cette ligne, bien sûr, devrait être supprimée maintenant. 95 00:07:19,810 --> 00:07:26,050 Et maintenant, avec les données que nous avons envoyées au serveur, nous n'envoyons pas seulement la description du titre, 96 00:07:26,050 --> 00:07:29,130 le propriétaire I. RÉ. , mais aussi le jeton push propriétaire. 97 00:07:29,800 --> 00:07:31,840 Et ce sera notre jeton de poussée ici. 98 00:07:34,480 --> 00:07:38,990 Et c'est soit maintenant, soit c'est notre jeton que nous avons obtenu de XPO. 99 00:07:40,860 --> 00:07:47,790 Alors maintenant, chaque fois que nous créons un nouveau produit, idéalement, nous pouvons envoyer notre jeton push. 100 00:07:48,210 --> 00:07:53,220 Maintenant, c'est Tolkan et tout cela ne fonctionnera pas sur les simulateurs, comme vous l'avez appris. 101 00:07:53,450 --> 00:07:57,420 Donc, Dan, pour toutes les sécurités et encore, le test est sur mon vrai iPhone. 102 00:07:57,900 --> 00:08:03,090 Donc, encore une fois, mon application démarre ici et je viens de me connecter avec l'utilisateur que nous avons créé. 103 00:08:03,570 --> 00:08:09,120 Et maintenant, sous Admon, je vais créer une nouvelle poussée de produit. 104 00:08:10,230 --> 00:08:10,890 Tolkan. 105 00:08:17,570 --> 00:08:19,520 Maintenant, nous devons vous représenter. 106 00:08:21,430 --> 00:08:23,560 Et je viens de saisir une image aléatoire. 107 00:08:24,550 --> 00:08:26,080 Et Ellender, un prix ici. 108 00:08:27,350 --> 00:08:28,340 Et une description. 109 00:08:30,540 --> 00:08:36,870 Et j'ai confirmé cela et je reçois une erreur, papa, l'objet d'état mis à jour n'a pas été trouvé et la dette 110 00:08:36,870 --> 00:08:42,810 est logique car en fait je le place ici dans un chèque, mais je l'utilise en dehors du contrôle sécurisé 111 00:08:42,810 --> 00:08:43,270 . 112 00:08:43,270 --> 00:08:47,430 Donc, bien sûr, cela a une mauvaise portée, peu de surveillance de ma part. 113 00:08:47,820 --> 00:08:53,820 Nous pouvons résoudre ce problème en réutilisant réellement l'objet d'état ici en le transformant en une variable avec 114 00:08:53,820 --> 00:08:54,300 let. 115 00:08:54,870 --> 00:09:02,040 Ensuite, nous définissons simplement notre objet d'état sur une nouvelle valeur, puis nous utilisons à nouveau l'état comme objet. 116 00:09:02,040 --> 00:09:03,090 Voici si vérifier. 117 00:09:03,390 --> 00:09:05,600 Maintenant, la portée est bonne et cela fonctionnera. 118 00:09:07,950 --> 00:09:09,090 Essayons donc à nouveau. 119 00:09:13,390 --> 00:09:20,560 Poussez, testez l'image insérée qui a choisi d'insérer un prix et une description. 120 00:09:21,370 --> 00:09:23,770 C'est un test. 121 00:09:24,460 --> 00:09:26,290 Ensuite, fermez est de confirmer cela. 122 00:09:26,860 --> 00:09:28,480 Et maintenant, cela semble fonctionner. 123 00:09:28,540 --> 00:09:29,770 J'ai ajouté mon produit. 124 00:09:30,810 --> 00:09:34,350 Et ce qui sera intéressant maintenant, c'est notre base de données. 125 00:09:35,030 --> 00:09:36,940 Voici ma base de données FIREBASE. 126 00:09:37,020 --> 00:09:40,840 Donc, le back-end que nous utilisons et un nouveau produit a été ajouté ici. 127 00:09:41,160 --> 00:09:44,170 Et en effet, ici, nous voyons à nouveau notre jeton push. 128 00:09:44,490 --> 00:09:47,640 J'ai ajouté une superposition sur mon jeton d'appareil réel. 129 00:09:47,880 --> 00:09:55,050 Mais c'est maintenant un jeton push qui nous permet d'envoyer une notification à l'utilisateur qui a créé ce produit. 130 00:09:55,530 --> 00:10:02,460 Alors maintenant, travaillons sur cette autre partie et assurons-nous que nous envoyons bien une notification une fois que nous 131 00:10:02,490 --> 00:10:04,470 avons effectivement commandé un produit.