Olá, Victor!
Entendo que você está enfrentando um desafio ao tentar integrar o Firebase com ASP.NET Core e Flutter. Vou tentar te ajudar com algumas orientações gerais, mas lembre-se que cada projeto tem suas especificidades e pode ser que você precise adaptar algumas coisas.
Primeiramente, você precisará configurar o Firebase Cloud Messaging (FCM) para enviar as notificações. Para isso, você precisa criar um projeto no Console do Firebase e obter a chave do servidor. Essa chave será usada para autenticar suas solicitações ao FCM.
No lado do servidor (ASP.NET Core), você pode usar a biblioteca FirebaseAdmin
para interagir com o FCM. Aqui está um exemplo de como você pode enviar uma notificação:
var defaultApp = FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.FromFile("path/to/your/serviceAccountKey.json"),
});
var messaging = FirebaseMessaging.DefaultInstance;
var message = new Message()
{
Data = new Dictionary<string, string>()
{
{ "nomeCliente", "Nome do Cliente" },
{ "telefone", "Telefone do Cliente" },
// Adicione todos os outros dados que você quer enviar aqui
},
Token = registrationToken,
};
var response = await messaging.SendAsync(message);
No lado do cliente (Flutter), você precisará configurar o pacote firebase_messaging
para receber as notificações. Aqui está um exemplo de como você pode fazer isso:
FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
// Aqui você pode fazer algo com a mensagem recebida
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
// Aqui você pode fazer algo com a mensagem recebida
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
// Aqui você pode fazer algo com a mensagem recebida
},
);
Lembre-se de que você precisará solicitar permissão para enviar notificações ao usuário e obter o token de registro, que será usado para enviar notificações para esse dispositivo específico.
Espero que essas orientações possam te ajudar a começar. Lembre-se de que a implementação exata pode variar dependendo dos detalhes do seu projeto, portanto, são só sugestões.
Espero ter ajudado e bons estudos!