我正在尝试编写一个云函数,该函数在每次创建集合"传感器读数"中的传感器读数时都会执行:
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.createNotification = functions.firestore
.document('sensor-readings/{sensorId}')
.onCreate((snap, context) => {
const payload = {
notification: {
title: 'New news',
body: "Body Test"
}
};
// perform desired operations ...
return admin.messaging().sendToTopic("topic",payload);
});
每次创建传感器读数时都会执行云功能,但当我尝试使用gcloud pubsub subscriptions pull --auto-ack MySub
为了测试函数的结果,没有向主题发布任何消息。
有什么想法吗?感谢
此代码与名为Firebase Cloud Messaging的产品配合使用,该产品用于向web和移动应用程序发送消息:
admin.messaging().sendToTopic("topic",payload);
但你的命令行正在使用谷歌云Pubsub,这是一个完全不同的产品:
gcloud pubsub subscriptions pull --auto-ack MySub
您不能使用FCM向pubsub主题发送消息。同样,它们完全不同。而且你不能使用gcloud来查看FCM消息发生了什么。你需要在你的网络或移动应用程序中做到这一点。
如果你想向pubsub主题发送消息,你应该使用Google Cloud SDK,而不是Firebase Admin SDK。