3
respostas

[AngularJS] É possivel alterar variáveis do $rootScope através de um Service Worker?

Gostaria de exercitar ainda mais o meu conhecimento sobre AngularJS e gostaria de saber se alguém já conseguiu fazer um SW mandar ou alterar informações da aplicação Angular ou se isso é realmente possível.

A curiosidade é porque enquanto eu estava montando uma aplicação de testes com o Firebase Messaging, percebi que consigo armazenar a contagem de notificações que vem do payload quando se trata de uma notificação interna (quando o navegador está aberto). Quando recebo notificações externas, pelo service worker, não consigo. Pois, a minha contagem de notificações fica em $rootScope.unseenCount.

Sugestões alternativas também são bem vindas.

3 respostas

Fala aí Marcos, tudo bem? Cara, não entendi a dúvida.

Eu tenho uma aplicação com AngularJS e Firebase Messaging.

O firebase messaging, possui um service worker para controlar notificações de push na área de trabalho. Esse service worker, é um arquivo JS que fica na pasta public do projeto, é totalmente independente da aplicação angular.

Eu quero saber se a partir do service worker eu consigo alterar variáveis do escopo da minha aplicação angular. Um exemplo seria a $rootScope.unseenCount.

OU, se existe alguma forma de eu sinalizar do service worker para o angular que a $rootScope.unseenCount precisa ser incrementada.

Fala ai Marcos, tudo bem? Precisa rever a forma como você está gerenciando a resposta do Firebase.

O correto seria que dentro do seu componente você consiga criar um listener do Firebase.

Assim, quando qualquer nova mensagem chegar, você consiga manipular os dados do componente.

Espero ter ajudado.