Android 使用云功能创建文档时发送通知
我使用Firebase和Firestore作为数据库 我想在用户通知集合中创建文档时推送新通知 应该是这样的,Android 使用云功能创建文档时发送通知,android,push-notification,google-cloud-firestore,google-cloud-functions,firebase-notifications,Android,Push Notification,Google Cloud Firestore,Google Cloud Functions,Firebase Notifications,我使用Firebase和Firestore作为数据库 我想在用户通知集合中创建文档时推送新通知 应该是这样的, const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); // // Create and Deploy Your First Cloud Functions
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// response.send("Hello from Firebase!");
// });
exports.sendNotificationToTopic = functions.firestore.document('notification/{notificationId}').onWrite(async (event) => {
var message ={
notification: {
title: "This is Title",
body: "This is the Body",
user: "fA0eLup_TUKVzdBkQbd3Qb:APA91bHuSuZOjdJgXn6xBndhQQkfnzm1pdLl9x3B2FZUYcYQULVPJFRbERezPuLoXD4QCUU2yalLUvgRfEas4B0sKAcwOkcmGkudLFvQWqTT7uhG21pKffTNTz5GvWKcD2-hKkfPq9Gq"
},
"token": user
};
let response=await admin.messaging().send(message);
console.log(response);
});
是的,我正在使用云函数
当我在通知集合中创建文档时,我没有收到通知
我在云函数日志中发现了一些错误
sendNotificationToTopic
Error: Exactly one of topic, token or condition is required at FirebaseMessagingError.FirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:42:28) at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:88:28) at new FirebaseMessagingError (/srv/node_modules/firebase-admin/lib/utils/error.js:254:16) at Object.validateMessage (/srv/node_modules/firebase-admin/lib/messaging/messaging-types.js:46:15) at Messaging.send (/srv/node_modules/firebase-admin/lib/messaging/messaging.js:207:27) at exports.sendNotificationToTopic.functions.firestore.document.onWrite (/srv/index.js:22:40) at cloudFunction (/srv/node_modules/firebase-functions/lib/cloud-functions.js:131:23) at /worker/worker.js:825:24 at <anonymous> at process._tickDomainCallback (internal/process/next_tick.js:229:7)
sendNotificationToTopic
错误:FirebaseMessagingError.FirebaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/Error.js:42:28)在FirebaseMessagingError.PrefixedFereBaseError[作为构造函数](/srv/node_modules/firebase admin/lib/utils/Error.js:88:28)在新FirebaseMessagingError(/srv/node_modules/firebase admin/lib/utils/error.js:254:16)在Object.validateMessage(/srv/node_modules/firebase admin/lib/messaging/messaging types.js:46:15)在messaging.send.sendNotificationToTopic.functions.firestore.document.onWrite(/srv/index.js:22:40)在exports.sendNotificationtototototopic.functions(/srv/node/index.js:22:40)at-cloudFunction(/srv/node\u modules/firebase functions/lib/cloud functions.js:131:23)at/worker/worker.js:825:24 at-process.\u tickDomainCallback(internal/process/next\u tick.js:229:7)
将令牌添加到var消息变量中
{
“通知”:{
标题:“这是标题”,
身体:“这就是身体”,
},
“令牌”:用户信息设备id
}
您可以从工具-->Firebase-->云消息-->第4步Firebase云消息-->获取令牌。第4步Firebase云消息实现简要解释了这一点
如何生成令牌?我生成了令牌并添加到文件中,但得到了错误引用错误:在cloudFunction(/srv/node_modules/firebase functions/lib/cloud functions.js:131:23)的exports.sendNotificationToTopic.functions.firestore.document.onWrite(/srv/index.js:22:16)中未定义用户at/worker/worker.js:825:24 at at-process.\u tickDomainCallback(internal/process/next\u tick.js:229:7)