Existe uma forma correta para a configuração do FCM em um projeto Quarkus? Se sim, qual seria essa forma correta?
Existe uma forma correta para a configuração do FCM em um projeto Quarkus? Se sim, qual seria essa forma correta?
Oi Giovanni, tudo bem?
Configurar o Firebase Cloud Messaging (FCM) em um projeto Quarkus é bastante simples. Primeiro, você precisa adicionar a dependência do FCM ao seu arquivo pom.xml. Você pode fazer isso adicionando o seguinte trecho de código:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-fcm</artifactId>
</dependency>
Depois de adicionar a dependência, você precisa configurar as informações do FCM em seu arquivo application.properties. Você pode fazer isso adicionando as seguintes linhas:
quarkus.fcm.enabled=true
quarkus.fcm.server-key=<sua-chave-do-servidor>
Certifique-se de substituir <sua-chave-do-servidor>
pela chave do servidor FCM fornecida pelo Firebase.
Com essas configurações em vigor, você pode injetar a classe FCMClient
em seus componentes Quarkus e usá-la para enviar notificações por push. Aqui está um exemplo de como você pode fazer isso:
@Inject
FCMClient fcmClient;
public void enviarNotificacao(String token, String titulo, String mensagem) {
FcmMessage message = new FcmMessage.Builder()
.to(token)
.notification(new FcmNotification.Builder()
.title(titulo)
.body(mensagem)
.build())
.build();
fcmClient.send(message);
}
Neste exemplo, a classe FCMClient
é injetada usando a anotação @Inject
e usada para enviar uma notificação para um dispositivo específico.
Um abraço e bons estudos.
FirebaseConfig.java:
package com.exemplo.firebase.config;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.messaging.FirebaseMessaging;
import io.quarkus.runtime.Startup;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.io.FileInputStream;
import java.io.IOException;
@Startup
@ApplicationScoped
public class FirebaseConfig {
@Inject
FirebaseMessaging firebaseMessaging;
public void initializeFirebase() throws IOException {
FileInputStream serviceAccount =
new FileInputStream("firebase-account-service.json");
FirebaseOptions firebaseOptions = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://<URL>.firebaseio.com")
.build();
FirebaseApp app = FirebaseApp.initializeApp(firebaseOptions, "my-app");
firebaseMessaging = FirebaseMessaging.getInstance(app);
}
}
Entendi!