通过 Firebase 向主题中的所有人发送通知,但发件人除外



如何向订阅主题的每个人发送通知,但消息发送者除外?对不起,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)
	}

消息将发送到订阅该主题的所有设备。 无法从主题中排除设备,除非它在发送消息之前自行取消订阅。

似乎您希望在消息中包含一些值,发件人可以使用该值来标识消息来自自身,然后使用该值选择忽略整个消息。

除此之外,您的函数不会返回一个承诺,指示它何时发送消息。 消息完全有可能永远不会发送,因为云函数可能会在发送消息之前对其进行清理。

相关内容

  • 没有找到相关文章