如何向订阅主题但发送邮件的所有人发送通知?我很遗憾JS代码真的很蹩脚我保证会改进它,这段代码会将推送通知发送给当前订阅的所有人,包括邮件发件人,我只需要停止发送给发件人,谢谢
let functions = require('firebase-functions');
var admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase)
exports.newMessage = functions.database.ref('groups/{groupId}/messages/{messageId}')
.onWrite(event => {
const message = event.data.val()
const groupId = event.params.groupId
sendNotification(message, groupId)
})
function sendNotification(message, groupdIdTopic) {
let title = message.placeName
let subtitle = message.content
let payload = {
notification: {
title: title,
body: subtitle,
sound: 'default',
badge: '1',
mutable_content: 'true'
},
data : {
placeId : groupdIdTopic,
userSenderId : message.senderId
}
}
var options = {
priority: "high",
timeToLive: 60 * 60 * 24,
mutable_content : true,
content_available : true,
category : 'reminder'
}
admin.messaging().sendToTopic(groupdIdTopic, payload, options)
}

答案 0 :(得分:0)
将消息发送给订阅该主题的所有设备。除非在发送邮件之前取消订阅,否则无法从主题中排除设备。
似乎您希望在邮件中包含一些值,发件人可以使用该值来识别邮件来自自身,然后使用它来选择忽略整个邮件。
除此之外,您的函数不会返回一个承诺,指示它发送的消息何时。完全有可能永远不会发送消息,因为云功能可能会在发送消息之前将其清除。