首页 > 解决方案 > 无法使用发送到主题选项接收云功能通知

问题描述

我正在使用 Flutter 和 Dart 来触发云功能推送通知,但是,我似乎无法在我的设备上收到任何通知。有人可以告诉我我的代码有什么问题吗?

const functions = require("firebase-functions");
const admin = require("firebase-admin");

admin.initializeApp(); 
exports.myFunction = functions.database.instance("fm-90011")
    .ref("orders/{userId}/{id}")
    .onCreate((snapshot, context) => {  
      console.log(snapshot.val());
      console.log("Inside push notification");
      return admin.messaging().sendToTopic("orders",{notification:{title:"New Order",body:'Tap to view',clickAction:'FLUTTER_NOTIFICATION_CLICK'}});
    });

下面是订单结构在 Firebase 实时数据库中的样子。 在此处输入图像描述

在云功能日志中,我得到如下所示的日志消息:

在此处输入图像描述

标签: flutterdartfirebase-realtime-databasegoogle-cloud-functions

解决方案


基于发布/订阅模型,FCM 主题消息传递允许您将消息发送到已选择加入特定主题的多个设备。您可以根据需要编写主题消息,FCM 会处理路由并将消息可靠地传递到正确的设备。

要向主题发送通知,设备必须订阅主题。

这是如何为设备订阅主题

....
 FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;
//subscribe to a notification
  _firebaseMessaging.subscribeToTopic("orders");

确保用户在添加订单之前订阅了订单。


推荐阅读