【发布时间】:2021-05-15 22:47:52
【问题描述】:
我正在使用 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'}});
});
在云功能日志中,我得到了如下所示的日志消息:
【问题讨论】:
-
我不确定你的意思。能给我举个例子吗?我的理解是,当用户提交订单时,应该触发这个通知。我已经检查并确保当我提交订单时,它会保存到数据库中。
-
我是新手,很抱歉提出愚蠢的问题。从您的解释来看,我想做的似乎与数据库有关。当任何其他用户将数据存储到数据库中的订单表时,我想触发对特定 UrserID 的通知。如何使用推送通知来做到这一点?除了FCM还有其他解决方案吗?
-
如何为特定用户生成令牌?另外,当您说“设备”令牌时,我很困惑。这是否意味着如果我使用其他手机以管理员身份登录,我将无法接收通知?
-
但是fcm不能通过UID而不是token来唯一标识用户吗?如果使用 UID,则根本不需要存储多个令牌。这确实会成为一个问题,因为如果我的客户决定使用其他手机以管理员身份登录并且我没有存储该手机的令牌,那么他们将无法收到通知。
标签: flutter dart firebase-realtime-database google-cloud-functions