Agora, vamos aplicar o que aprendemos nas últimas palestras em nosso projeto de loja que construímos para todo este curso.
Aqui, eu consegui esse projeto com o React Navigation cinco integrado tantas vezes em uma seção em que mostro
como atualizar para reagir a navegação cinco.
E eu não mudei mais nada.
Portanto, este é o aplicativo como o conhecemos, rodando nos simuladores.
E, querido, é claro que podemos criar uma conta com algumas credenciais aqui.
Primeiro de tudo, preciso me inscrever.
E agora aqui podemos adicionar produtos e assim por diante.
Agora minha idéia está morta quando adicionamos um produto aqui.
Na verdade, não armazenamos apenas o produto com todos os dados que estamos enviando até o momento, quando
criamos um produto, estamos compartilhando título, descrição, imagem.
Você é El Price e proprietário I. D. Mas, em vez disso, além de compartilhar tudo
isso, também quero adicionar o token de envio do dispositivo do usuário que adicionou seu produto.
Então, para afastar o Tolkan do vendedor, também quero adicioná-lo ao produto.
Por quê?
Para que, quando buscarmos os dados do produto, também possamos fazer o download do token push que pertence a um produto.
E, embora não mostremos isso para os outros usuários, vamos usá-lo no código para garantir que, quando um
pedido for feito, quando adicionamos um pedido, não apenas armazenemos.
Papai solicitou dados no banco de dados, mas também enviamos uma notificação por push ao proprietário do produto
que acabou de ser solicitado, informando que o produto foi solicitado.
Essa é a minha ideia aqui.
Isso, é claro, significa que teremos que analisar os itens que estão no carrinho e, em seguida, enviaremos
uma notificação por push para cada produto, basicamente.
Essa é a minha ideia.
Portanto, para que a dívida garanta que isso funcione, precisamos primeiro nos preparar.
Projeta para notificações push.
Isso significa que, em primeiro lugar, devemos acessar o App Jason e adicionar a entrada do Android
aqui, onde dissemos que usar a próxima API de notificações como verdadeira.
Foi o que eu mostrei antes nas outras palestras também.
Todos nós precisamos pedir permissão ao usuário.
Então a questão é onde queremos fazer isso.
Claro, já que é Steve.
Criador de um produto que deve receber notificações por push.
Pedirei permissão antes de criar um novo produto.
Portanto, temos nosso usuário, nossa tela de produto adicionado, onde criamos um novo produto.
E aí, no final, acionamos uma ação no arquivo de produtos que James acionará aqui, cria uma ação
do produto.
E agora minhas idéias que peço permissão aqui.
Depois, também busco o token aqui e podemos adicionar um token aos dados enviados que estão sendo enviados
ao servidor.
Portanto, primeiro vamos instalar o pacote de notificações da Expo e também as permissões da Expo.
E então vamos usar os dois exatamente como aprendemos nas palestras deste módulo.
Portanto, com isso instalado aqui e crie o produto antes de fazer qualquer outra coisa.
Queremos usar a API de notificações e, para isso, precisamos importar tudo como notificações.
De.
Notificações da Expo, e isso também já importa tudo como permissões das permissões da Expo.
E com esses dois, a API é importada no produto de criação, podemos usar notificações para obter nosso token de envio da expo.
No entanto, como você sabe, não queremos fazer isso diretamente.
Em vez disso, antes de tudo, queremos verificar o status das permissões, para que possamos usá-las
e obter as informações sobre a permissão dessas notificações.
Isso retorna uma promessa.
E como estamos na função assíncrona aqui, podemos simplesmente aguardá-la.
Agora, o que retornaremos é o objeto status morto, que possui essa propriedade status que nos diz se uma
permissão foi concedida ou não.
Para que possamos verificar se o objeto status.
O status do DOT talvez não seja concedido, o que significa que ainda não temos permissões.
Em seguida, queremos usar a API de permissões novamente para solicitar a permissão dessas notificações.
Com este código.
E isso é tudo o que tínhamos antes.
Agora, apenas com espera assíncrona, em vez de então.
Mas fora isso, é o mesmo.
E aqui obteremos novamente nosso status.
Objeto.
Agora, como teríamos um conflito de nomes, todos vocês serão nomeados este ano.
Objeto de status atualizado.
E, é claro, aqui também devemos esperar, porque o pai é síncrono e retorna uma promessa.
Portanto, neste ponto do tempo, agora podemos verificar se o objeto de status atualizado possui um status.
Isso não é igual ao concedido.
E se for esse o caso, sabemos que não poderemos enviar notificações por push.
E papai está absolutamente bem.
Vou simplesmente criar uma variável de token aqui e definir um token igual a Knol aqui para deixar bem claro que simplesmente não
temos um token aqui.
Na verdade, não vamos nomear seu token porque já usamos esse nome.
Vamos nomear.
Push token.
Porque papai é o que queremos recuperar no final.
Portanto, definimos como nulo aqui se absolutamente não obtivemos permissão, porque não há nada que possamos fazer
nesse caso, porque simplesmente não temos permissão para enviar notificações por push.
É o que é.
Mas, no caso do ELT, o pai é concedido.
Nesse caso, podemos definir nosso token push igual à notificação Stotz para obter XPO Push, assíncrona Tolkan e, é claro, isso
é uma promessa.
Então devemos esperar isso.
E, claro, não recebemos diretamente o token.
Em vez disso, obtemos um objeto que possui um campo de dados, se você se lembra.
E assim poderíamos colocar isso aqui entre parênteses e chamar dados sobre isso.
Isso significa simplesmente que, antes de tudo, essa promessa está resolvida.
Em seguida, chamamos dados no objeto resolvido depois que esperamos que ele prometa e veja o valor nos dados, que
depois armazenamos na variável push token.
Então, aqui teremos nosso token de envio, do qual precisamos.
Agora, quando tivermos isso, podemos continuar.
E já que estávamos esperando.
Esse código será executado apenas quando o pai terminar.
Essa linha, é claro, deve ser removida agora.
E agora, com os dados que enviamos para o servidor, não enviamos apenas a descrição do título, o
proprietário I. D. , mas também o token de envio do proprietário.
E esse será o nosso token de envio aqui.
E isso é agora ou é o nosso token que recebemos do XPO.
Portanto, agora, sempre que criamos um novo produto, o ideal é que possamos enviar nosso token de envio.
Agora, conseguir o Tolkan e tudo isso não funcionará em simuladores, como você aprendeu.
Então, Dan, para todas as garantias e, novamente, o teste está no meu iPhone real.
Então, novamente, iniciei meu aplicativo aqui e entrei com o usuário que criamos.
E agora, no Admon, vou criar um novo impulso de produto.
Tolkan.
Agora precisamos imaginar que você é ele.
E eu apenas peguei uma imagem aleatória.
E Ellender, um prêmio aqui.
E uma descrição.
E confirmei isso e estou recebendo um erro, pai, o objeto de status atualizado não foi encontrado e a dívida faz
sentido porque, na verdade, estou definindo isso aqui como uma verificação, mas depois a uso fora da verificação segura
.
Então, é claro, isso tem o escopo errado, pouca supervisão do meu lado.
Podemos consertar isso reutilizando o objeto status aqui, transformando-o em uma variável com
let.
Então aqui simplesmente configuramos nosso objeto de status com um novo valor e depois usamos state como objeto novamente.
Aqui está se verificar.
Agora, o escopo está correto e isso funcionará.
Então, vamos tentar novamente.
Empurre, teste a imagem inserida que escolheu inserir um preço e uma descrição.
Isto é um teste.
Então fechar é confirmar isso.
E agora isso parece funcionar.
Eu adicionei meu produto.
E o que será interessante agora é o nosso banco de dados.
Aqui está o meu banco de dados FIREBASE.
Portanto, o back-end que estamos usando e um novo produto foi adicionado aqui.
E, de fato, aqui vemos nosso token de envio novamente.
Adicionei uma sobreposição ao meu token de dispositivo real.
Mas agora é um token de envio que permite enviar uma notificação ao usuário que criou este produto.
Portanto, agora vamos trabalhar nessa outra parte e garantir que realmente enviaremos uma notificação quando
realmente solicitarmos um produto.