Existe uma forma correta para a configuração do FCM em um projeto Quarkus? Se sim, qual seria essa forma correta?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!