尝试使用Firebase函数从我的Cloud Firestore获取我的FCM令牌
我的函数代码:
const functions = require("firebase-functions");
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotificationToFCMToken = functions.firestore.document('Posts/{likes}').onWrite(async (event) => {
const title = event.after.get('title');
const content = event.after.get('likes');
let userDoc = await admin.firestore().doc('Users').get();
let fcmToken = userDoc.get('{token}');
var message = {
notification: {
title: title,
body: "you have a new like",
},
token: fcmToken,
}
let response = await admin.messaging().send(message);
console.log(response);
});
我的Firestore
职位:
用户:
如果我手动添加令牌一切工作,但只是发送每个“喜欢”到一个设备,我的目标是发送一个链接,只有所有者的职位
2条答案
按热度按时间jm2pwxwz1#
它可能更像这样:
添加日志记录以查看您得到的内容:
functions.logger.info('🞬🞬🞬 ' + JSON.stringify(event));
...可在https://console.cloud.google.com/logs/query查看。当监听Posts/{likes}
时,您可能需要一个额外的查询,而当监听Posts
时,您需要确定更改。要使后续查询工作,需要访问ref
。li9yvcax2#
Martin的答案是正确的,但似乎
ref
字段的类型是Reference,请参阅开头的斜杠,以及您得到的错误。所以,如果这个假设是正确的,你应该使用
path
属性,如下所示(改编Martin的代码):此外,为了正确地manage the life cycle of your Cloud Function,你应该做的,在结束时:
或者只是