1 00:00:02,270 --> 00:00:04,340 Então, vamos trabalhar na parte de pedidos. 2 00:00:04,370 --> 00:00:10,670 Agora, sempre que um novo pedido é feito, queremos enviar uma notificação, uma notificação por push. 3 00:00:11,060 --> 00:00:16,190 Agora estamos armazenando esse proprietário, Push Tolkan, necessário para enviar uma notificação. 4 00:00:16,640 --> 00:00:18,680 E, na verdade, temos duas opções. 5 00:00:18,710 --> 00:00:26,660 Agora, como tudo isso é feito no back-end, poderíamos enviar essa solicitação para expor o servidor de envio a partir do 6 00:00:26,660 --> 00:00:32,930 back-end, usando um dos casos da Expo ESTA que mostrei anteriormente, como o de Noad 7 00:00:32,930 --> 00:00:40,270 e P HP, dependendo do qual idioma você está usando no seu back-end ou simplesmente enviando a mesma idade. 8 00:00:40,280 --> 00:00:46,640 A solicitação TDP que enviamos de dentro do aplicativo mais cedo pelas suas costas e pai também seria uma opção. 9 00:00:47,210 --> 00:00:51,140 Agora o Firebase é um apoio especial e não o possuímos totalmente. 10 00:00:51,530 --> 00:00:56,330 Em vez disso, usamos os serviços que realmente temos com as funções da nuvem. 11 00:00:56,360 --> 00:01:02,420 Haveria um serviço que nos permite executar o código do lado do servidor e poderíamos fazer tudo funcionar. 12 00:01:02,660 --> 00:01:06,500 Mas como o uso das funções da nuvem não é mais totalmente gratuito. 13 00:01:06,800 --> 00:01:08,410 Eu não quero mostrar este ano. 14 00:01:08,660 --> 00:01:13,250 Eu só quero que você saiba que você absolutamente pode criar código no servidor. 15 00:01:13,460 --> 00:01:20,300 Isso custaria a notificação por push a ser enviada de dentro deste servidor, para que esse acionamento aconteça aqui 16 00:01:20,300 --> 00:01:21,290 no servidor. 17 00:01:21,800 --> 00:01:23,840 Agora, vou fazer isso a partir do aplicativo e começar. 18 00:01:23,940 --> 00:01:25,490 O pôr do sol é mais fácil para nós aqui. 19 00:01:25,670 --> 00:01:27,890 Mas essa é apenas uma opção possível. 20 00:01:28,490 --> 00:01:34,730 Agora, por dentro, o aplicativo enviará a notificação exatamente como fizemos antes aqui em ordem de adição. 21 00:01:34,790 --> 00:01:36,020 Nós queremos enviá-lo. 22 00:01:36,470 --> 00:01:39,020 E lá temos nossos itens de carrinho. 23 00:01:39,680 --> 00:01:41,570 Agora, os itens do carrinho que estamos recebendo. 24 00:01:41,660 --> 00:01:44,600 Vamos dar uma breve olhada no que exatamente está lá. 25 00:01:45,700 --> 00:01:52,510 Então, se você for à loja, às ordens para a tela do cartão, é aí que despacharemos a ação dele. 26 00:01:53,750 --> 00:01:56,360 A ação de adicionar pedido aos itens do cartão. 27 00:01:56,900 --> 00:02:05,180 E se dermos uma olhada em nossos itens de carrinho, vemos que os itens de cartões indianos são buscados em nossa loja redux e 28 00:02:05,780 --> 00:02:13,400 os itens de cartões serão uma matriz em que, no final, temos objetos em que cada objeto tem um produto com o 29 00:02:13,400 --> 00:02:16,550 nome de produto Quantidade de preço do produto termina. 30 00:02:17,150 --> 00:02:23,000 Então, o que precisamos aqui é que também precisamos do token de envio do produto. 31 00:02:23,180 --> 00:02:29,090 Então, o símbolo do criador deste produto no final e podemos obtê-lo de dentro do nosso estado. 32 00:02:31,480 --> 00:02:32,800 Eles são do carrinho. 33 00:02:34,650 --> 00:02:36,570 Dos itens para essa chave. 34 00:02:36,590 --> 00:02:40,460 Então, basicamente, o que fazemos lá em cima, vamos procurar um token de envio. 35 00:02:40,860 --> 00:02:46,320 Agora, este é um campo que ainda não estará lá porque, antes de tudo, precisamos fazer 36 00:02:46,320 --> 00:02:48,540 algumas alterações em nossa loja lá. 37 00:02:48,570 --> 00:02:50,790 Vamos verificar o redutor de cartão. 38 00:02:52,210 --> 00:02:56,800 Quando um produto é adicionado ao cartão, obtemos informações sobre este produto aqui. 39 00:02:57,250 --> 00:03:00,880 E a partir daí, por exemplo, extraímos o título e o preço. 40 00:03:04,600 --> 00:03:10,030 E, no final, adicionamos o preço e o título ao item do carrinho. 41 00:03:10,630 --> 00:03:13,300 Agora, não precisamos apenas precificar o título. 42 00:03:13,360 --> 00:03:15,070 Também precisamos pressionar Tolkan. 43 00:03:15,580 --> 00:03:18,760 Então, aqui, vamos extrair o push, símbolo deste produto. 44 00:03:19,090 --> 00:03:22,060 Portanto, adicione um ponto do produto pressionando Tolkan, por exemplo. 45 00:03:22,540 --> 00:03:26,770 Este também é um campo que ainda não existe em um produto, mas será alterado assim que possível. 46 00:03:27,670 --> 00:03:28,900 E então podemos adicionar esse empurrão. 47 00:03:28,900 --> 00:03:33,880 Tolkan, digamos, como um terceiro argumento aqui para o item do carrinho. 48 00:03:34,390 --> 00:03:38,950 E também aqui desculpe, é o quarto argumento, é claro. 49 00:03:39,850 --> 00:03:43,300 Então, eu estou adicionando isso como um quarto argumento ao construtor de itens do cartão. 50 00:03:43,890 --> 00:03:46,760 Agora, para o pai, precisamos mudar para o construtor de itens do carrinho. 51 00:03:47,080 --> 00:03:54,130 Portanto, aqui, um item de cartão não deve receber esse token de envio como quarto argumento e, em seguida, armazenado é 52 00:03:54,130 --> 00:03:54,490 aqui. 53 00:03:54,910 --> 00:03:57,640 Portanto, esse token de envio é igual ao token de envio. 54 00:04:00,580 --> 00:04:06,340 Mas ainda não estamos lá, porque agora estou armazenando isso para cada item do cartão, mas estou conseguindo. 55 00:04:08,930 --> 00:04:13,460 Do meu produto e um produto ainda não possui um token. 56 00:04:13,790 --> 00:04:20,780 Sim, ele possui um no Firebase, mas não estamos buscando esses dados ou não estamos usando esses dados em nosso aplicativo 57 00:04:20,780 --> 00:04:21,830 de site cliente. 58 00:04:21,890 --> 00:04:25,640 Neste aplicativo nativo de reação, em vez aqui no. 59 00:04:26,640 --> 00:04:36,120 Arquivo de ações de produtos aqui, produtos perseguidos em ações em que buscamos todos os produtos aqui, buscamos produtos. 60 00:04:36,540 --> 00:04:42,720 O que fazemos é extrair coisas como a ideia, o preço do título e assim por diante e criar um novo produto 61 00:04:42,720 --> 00:04:45,360 baseado em nosso modelo de produto com essas informações. 62 00:04:46,050 --> 00:04:49,260 Agora, aqui, também devemos conseguir isso. 63 00:04:51,220 --> 00:04:52,600 Proprietário Push Tolkan. 64 00:04:53,750 --> 00:05:01,460 Assim como estamos extraindo o proprietário I. D. , então aqui queremos obter o token de envio do proprietário para os 65 00:05:01,460 --> 00:05:02,000 produtos individuais. 66 00:05:02,120 --> 00:05:07,070 E adicione isso ao nosso modelo de produto, por exemplo, como um terceiro argumento. 67 00:05:08,760 --> 00:05:12,840 Então agora é que precisamos ir para o modelo de produtos, para o modelo de produto aqui. 68 00:05:12,870 --> 00:05:14,630 Desculpe, produto e modelos. 69 00:05:15,270 --> 00:05:22,050 E como um terceiro argumento, agora precisamos aceitar o proprietário, pressionar Tolkan e armazenar isso. 70 00:05:22,770 --> 00:05:29,520 E vou nomear esse campo, Push Tolkan, e armazenar meu proprietário, Push Tolkan, porque Push 71 00:05:29,820 --> 00:05:36,940 Tolkan é o nome do campo que agora também usei aqui no redutor de carrinho de lá. 72 00:05:36,990 --> 00:05:40,000 Estou acessando o produto adicionado ponto push Tolkan. 73 00:05:40,530 --> 00:05:46,860 Portanto, se você usar o nome diferente aqui para recuperar um token para um determinado produto, também precisará de um nome de 74 00:05:46,860 --> 00:05:48,780 justiça aqui no modelo do produto. 75 00:05:50,060 --> 00:05:56,000 Mas, com todas essas alterações, garantimos que estamos buscando o token armazenado para cada 76 00:05:56,000 --> 00:05:56,450 produto. 77 00:05:56,990 --> 00:06:01,220 E estamos usando e armazenando no front-end, também em nossos modelos. 78 00:06:01,700 --> 00:06:04,580 E estamos armazenando-o em todos os modelos de produtos que estamos criando. 79 00:06:04,610 --> 00:06:05,840 Cada instância do produto. 80 00:06:06,200 --> 00:06:12,140 E também estamos armazenando-o nos itens do carrinho, que estamos adicionando ao carrinho aqui na loja Redux. 81 00:06:12,980 --> 00:06:18,200 Portanto, agora cada item de cartão terá um token de envio e nosso modelo de item de cartão. 82 00:06:18,300 --> 00:06:26,600 Todas as lojas que em uma chave denominada push token e, portanto, agora finalmente conseguirão obter esses dados quando um 83 00:06:26,600 --> 00:06:28,100 pedido for feito. 84 00:06:31,170 --> 00:06:37,560 Agora, não precisamos apenas atualizar como criamos produtos aqui nos produtos G. S. caem, as ações caem, mas também nos 85 00:06:37,560 --> 00:06:42,540 redutores, nos produtos, G. S. arquivo em redutores. 86 00:06:42,910 --> 00:06:48,990 Lá, precisamos criar casos de produtos, com os quais lidamos onde também instanciamos nosso produto. 87 00:06:50,210 --> 00:06:57,620 Agora, desde que mudamos nosso modelo de produto para levar Tolkan como o terceiro argumento aqui, também 88 00:06:57,620 --> 00:07:00,050 precisamos atualizar aqui, é claro. 89 00:07:00,530 --> 00:07:01,430 Então aqui. 90 00:07:03,020 --> 00:07:09,470 O terceiro argumento, o título não deve mais ser o título, mas deve vir dos dados 91 00:07:09,470 --> 00:07:10,820 de nossos produtos. 92 00:07:11,510 --> 00:07:13,220 E deve haver para pressionar Tolkan. 93 00:07:14,600 --> 00:07:21,140 Agora, quanto à dívida, é claro, por sua vez, precisamos verificar para onde despachamos criar produto para garantir que a 94 00:07:21,140 --> 00:07:26,570 ação que adiciona dados do produto também adicione um token de envio aos dados do produto. 95 00:07:28,810 --> 00:07:32,560 Também criamos um novo produto lá em baixo, um produto de atualização. 96 00:07:32,620 --> 00:07:33,850 E aí está o mesmo. 97 00:07:34,650 --> 00:07:41,740 O novo terceiro argumento que obtemos aqui no construtor do produto deve, nesse caso, ser produtos de usuário de estado 98 00:07:41,740 --> 00:07:44,340 para o índice de produto especificado. 99 00:07:45,100 --> 00:07:53,560 E então, novamente, é o Push Tolkan, Push, Tolkan é o nome que temos aqui, porque o pai aqui acessará um produto 100 00:07:53,560 --> 00:08:00,430 armazenado em nosso campo de produtos para usuários e esse produto terá que formar nosso modelo de 101 00:08:00,430 --> 00:08:00,880 produto. 102 00:08:01,180 --> 00:08:03,310 E lá eu escolhi Push Tolkan como um nome. 103 00:08:03,610 --> 00:08:06,570 Então, também há Push Tolkan como um nome aqui. 104 00:08:12,230 --> 00:08:18,620 Portanto, voltando ao caso de criação de produto, como eu disse, agora precisamos ir para o local 105 00:08:18,620 --> 00:08:23,270 em que essa ação é despachada para garantir os dados adequados. 106 00:08:23,330 --> 00:08:25,820 O token de envio é adicionado à ação. 107 00:08:26,750 --> 00:08:32,990 Agora são os produtos G. S. na pasta de ações e eles são criadores de ações do produto. 108 00:08:33,290 --> 00:08:37,130 O local em que enviamos cria uma ação do produto no final. 109 00:08:37,550 --> 00:08:43,370 E, portanto, aqui para dados do produto em qualquer lugar desse objeto, devemos garantir que também adicionemos um 110 00:08:43,370 --> 00:08:44,360 token de envio. 111 00:08:44,930 --> 00:08:50,360 E agora esse valor de token push é simplesmente empurrar Tolkan que já estamos usando lá em cima. 112 00:08:50,480 --> 00:08:52,190 Portanto, devemos armazenar isso aqui também. 113 00:08:54,380 --> 00:08:58,970 E com o pai, garantimos que não recebemos um erro ao criar um novo produto. 114 00:08:59,600 --> 00:09:01,400 Caso contrário, estaríamos recebendo um. 115 00:09:03,650 --> 00:09:09,440 Então, volte aqui no arquivo de ações de pedidos na ação adicionar pedido aqui. 116 00:09:09,470 --> 00:09:17,480 Agora, queremos obter nosso token de dentro do item do cartão e enviar uma solicitação de notificação por push. 117 00:09:18,080 --> 00:09:25,220 Talvez depois de adicionar o pedido real em nosso servidor, porque enviar a notificação por push é menos importante do que 118 00:09:25,430 --> 00:09:27,170 armazenar os dados no servidor. 119 00:09:27,290 --> 00:09:28,550 Eu diria que sim. 120 00:09:28,610 --> 00:09:32,150 Dhafer, depois que este pedido foi enviado aqui. 121 00:09:33,520 --> 00:09:41,380 Depois de adicionarmos o pedido em nossa loja Redux, depois de tudo isso, queremos enviar nossas notificações por push. 122 00:09:44,050 --> 00:09:49,420 Agora, para o pai, teremos que passar por todos os itens do cartão que temos aqui e enviar uma notificação por 123 00:09:49,420 --> 00:09:49,840 item. 124 00:09:50,110 --> 00:09:54,640 Essa é outra razão pela qual você pode considerar fazer isso no lado do serviço. 125 00:09:54,910 --> 00:09:57,370 Se você tiver muitos itens, isso pode levar algum tempo. 126 00:09:57,640 --> 00:09:59,730 E, no momento, o pai será todo trabalho. 127 00:09:59,770 --> 00:10:04,130 Isso acontece aqui em nosso aplicativo React Native no cliente, não no servidor. 128 00:10:05,390 --> 00:10:11,570 No servidor, pode ser melhor porque isso tira o trabalho do cliente, mas por duas razões mencionadas, como não 129 00:10:11,660 --> 00:10:16,670 temos nosso próprio servidor, já que estamos usando firebase e cloud, as funções não são 130 00:10:16,670 --> 00:10:19,370 mais gratuitas por causa de todas essas razões. 131 00:10:19,730 --> 00:10:23,840 Na verdade, usarei a solução subótima de acionar isso no cliente. 132 00:10:24,050 --> 00:10:29,870 Portanto, em vez do aplicativo React Native e por um ano, queremos passar por todos os itens de descarte. 133 00:10:29,870 --> 00:10:39,110 Temos tão poucos itens de cartão aqui e, para cada item de cartão, queremos obter o token push simplesmente acessando o 134 00:10:39,110 --> 00:10:41,840 item do cartão, ponto, push, token. 135 00:10:43,470 --> 00:10:45,720 E então queremos enviar nosso pedido. 136 00:10:46,080 --> 00:10:51,150 Então, novamente, com a API Fetch aqui, queremos enviar a solicitação para HTP s. 137 00:10:51,690 --> 00:11:01,080 E então papai foi ex-barra do host DOD traço, traço, barra, barra api, barra b2, push, barra, envie e adicione o 138 00:11:01,740 --> 00:11:10,350 segundo objeto em que configuramos essa solicitação para definir seu método para postar e também adicionar alguns cabeçalhos 139 00:11:10,350 --> 00:11:11,460 aqui . 140 00:11:12,300 --> 00:11:16,530 E queríamos aceitar o cabeçalho que deveria ser o aplicativo. 141 00:11:17,070 --> 00:11:29,040 Jason, queríamos aceitar e codificar o cabeçalho que deveria ser deflacionado por Jessep e queremos o tipo de conteúdo Petyr aqui, que 142 00:11:29,640 --> 00:11:33,210 também deve ser o aplicativo Jason. 143 00:11:33,840 --> 00:11:39,750 Mas agora, ainda mais importante, queremos adicionar nosso corpo à solicitação, que deve 144 00:11:39,750 --> 00:11:47,160 ser um objeto fidedigno adjacente, no qual apontamos agora para esse impulso Tolkan com os dois campos. 145 00:11:49,800 --> 00:11:56,340 E então podemos adicionar informações extras, adicionar metadados extras sobre o item do cartão, por exemplo, para os quais 146 00:11:56,510 --> 00:11:58,270 a notificação está sendo enviada. 147 00:11:58,740 --> 00:12:02,430 Mas aqui todos basta adicionar um título de pedido foi colocado. 148 00:12:03,500 --> 00:12:12,800 E então, corpo para esta notificação por push, onde eu simplesmente compartilhei, digamos, o título do produto que 149 00:12:12,890 --> 00:12:13,940 foi pedido. 150 00:12:14,480 --> 00:12:20,630 Lembre-se de que, no título de cada carro, armazenamos o título do produto em um campo de título do produto. 151 00:12:21,530 --> 00:12:29,210 Portanto, de volta aqui no arquivo de ações dos pedidos, posso acessar o título do produto DOT do item do cartão 152 00:12:29,210 --> 00:12:33,800 para compartilhá-lo como parte da notificação por push que deve ser enviada. 153 00:12:36,250 --> 00:12:42,420 E, no final, com o pai, vamos agendar várias solicitações de HTP. 154 00:12:42,730 --> 00:12:45,190 Eu não estou esperando por suas respostas. 155 00:12:45,220 --> 00:12:47,030 Não estou lidando com as respostas. 156 00:12:47,380 --> 00:12:51,610 Você pode examinar essas respostas e tentar lidar com possíveis erros. 157 00:12:52,090 --> 00:12:53,590 Mas no final, isso deve funcionar. 158 00:12:53,980 --> 00:12:59,920 E se, por algum motivo, uma notificação por push não for aprovada nesse caso, também não é o 159 00:12:59,920 --> 00:13:02,650 fim do mundo, mas deve realmente funcionar. 160 00:13:03,010 --> 00:13:04,840 Então, agora vamos à segurança. 161 00:13:07,180 --> 00:13:08,350 E vamos tentar. 162 00:13:09,340 --> 00:13:13,030 Então, de volta aqui no meu aplicativo, adicionarei um segundo produto. 163 00:13:16,550 --> 00:13:19,850 Simplesmente para ver se conseguimos enviar notificações por push. 164 00:13:20,330 --> 00:13:21,890 Vou usar a mesma imagem, no entanto. 165 00:13:23,160 --> 00:13:24,510 Digite meu preço. 166 00:13:25,830 --> 00:13:26,910 E uma descrição. 167 00:13:28,340 --> 00:13:29,330 Confirme isso. 168 00:13:30,340 --> 00:13:35,140 E agora vá para a área de produtos e adicione ambos ao meu carrinho. 169 00:13:37,000 --> 00:13:38,290 Agora, esses são meus próprios produtos. 170 00:13:38,320 --> 00:13:40,210 Mas neste aplicativo, ainda posso encomendá-los. 171 00:13:40,600 --> 00:13:42,220 Então agora vamos pressionar ordenado. 172 00:13:42,700 --> 00:13:43,960 Qual deve fazer o pedido. 173 00:13:44,890 --> 00:13:46,420 E não vemos nada. 174 00:13:47,260 --> 00:13:49,420 Agora, isso significa que temos um erro? 175 00:13:50,230 --> 00:13:51,280 Não necessariamente. 176 00:13:51,700 --> 00:13:53,020 Nós não vemos nada. 177 00:13:53,200 --> 00:13:57,490 Porque você deve se lembrar de que o aplicativo Ifti está sendo executado em primeiro plano por padrão. 178 00:13:57,580 --> 00:13:59,080 Nenhuma notificação é mostrada. 179 00:13:59,320 --> 00:14:06,130 E o mesmo se aplica às notificações por push, porque, como você também aprendeu, elas apenas acionam notificações locais no 180 00:14:06,130 --> 00:14:06,580 final. 181 00:14:08,870 --> 00:14:11,300 Então, vamos consertar isso e garantir que possamos ver alguma coisa.