Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Envio de mensagens sem tokens ou tópicos do Firebase Cloud Messaging

Estou desenvolvendo uma aplicação utilizando Quarkus, nisso surgiu uma dúvida. É possível fazer o envio de mensagens do Firebase Cloud Messaging sem o uso de tokens ou tópicos? Se for possível, como ficaria essa alteração?

package firebase.service;

import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingException;
import com.google.firebase.messaging.Message;
import com.google.firebase.messaging.Notification;
import firebase.bean.FirebaseRequestBean;
import firebase.bean.FirebaseResponseBean;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;

@ApplicationScoped
public class FirebaseService {

    @Inject
    private FirebaseMessaging firebaseMessaging;

    public FirebaseResponseBean sendNotificationByToken(FirebaseRequestBean bean)
        throws FirebaseMessagingException {

        Notification notification = Notification
            .builder()
            .setTitle(bean.getTitle())
            .setBody(bean.getBody())
            .build();
        Message message = Message
            .builder()
            .setToken(bean.getToken())
            .setNotification(notification)
            .build();

        firebaseMessaging.send(message);

        return FirebaseResponseBean.builder()
            .token(bean.getToken())
            .title(bean.getTitle())
            .body(bean.getBody())
            .build();
    }

}
1 resposta
solução!

Ola´!

O Firebase Cloud Messaging (FCM) é projetado para enviar mensagens para dispositivos específicos, seja por meio do uso de tokens de registro ou tópicos. Os tokens de registro identificam dispositivos individuais, enquanto os tópicos permitem segmentar grupos de dispositivos que se inscreveram no mesmo tópico.

Se você deseja enviar mensagens sem usar tokens de registro ou tópicos, é importante entender que o FCM não fornece uma maneira nativa de fazer isso. No entanto, você pode implementar uma solução alternativa criando uma lógica personalizada em sua aplicação para alcançar o que deseja. Aqui estão algumas etapas gerais de como você pode fazer isso:

  1. Identificação de dispositivos: Em vez de usar tokens de registro, você pode criar um sistema de identificação única para os dispositivos que você deseja alcançar. Por exemplo, você pode gerar IDs exclusivos para cada dispositivo e armazená-los em seu servidor.

  2. Armazenamento de IDs: Você precisa armazenar esses IDs exclusivos em seu servidor, associados aos dispositivos relevantes.

  3. Envio de mensagens: Quando você deseja enviar uma mensagem a um dispositivo específico, você envia a mensagem para o ID exclusivo associado a esse dispositivo em seu servidor.

  4. Recebimento de mensagens: No lado do aplicativo no dispositivo, você implementa a lógica para receber e processar as mensagens com base nos IDs exclusivos em vez de tokens de registro.

Tenha em mente que essa abordagem personalizada pode ser mais complexa e requer mais esforço de desenvolvimento, pois você precisará gerenciar o armazenamento e o mapeamento de IDs exclusivos. Além disso, é importante garantir a segurança e a privacidade dos dados dos dispositivos.

Valeu!