Я хочу проверить, совпадает ли fcmToken текущего устройства с fcmToken пользователя, отправляющего сообщение, и, если это так, не отправлять уведомление. Можно ли получить fcmToken в файле node.js, и если нет, есть ли другие возможные способы, которыми я могу запретить пользователю получать уведомления о своем собственном сообщении.
Ниже я разместил код node.js: пользователи в основном просто получают уведомления на основе тем (convoIds), на которые они подписаны.
exports.observeMessages = functions.database.ref('/conversation_messages/{topicId}/{messageId}')
.onCreate((snapshot, context) => {
var topic = context.params.topicId;
var messageId = context.params.messageId;
var message = snapshot.val();
return admin.database().ref('/conversations/' + topic).once('value', snapshot => {
var conversation = snapshot.val(); // This gives us the conversation name
return admin.database().ref('/users/' + message.senderId).once('value', snapshot => {
var user = snapshot.val();
var notification = {
notification: {
title: conversation.conversationName,
body: user.username + ': ' + message.text
},
apns: {
payload: {
aps: {
sound: 'default'
}
}
},
data: {
conversationId: topic
},
topic: topic
};
admin.messaging().send(notification)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:' + notification + 'to topic: ' + topic, response);
return response
})
.catch((error) => {
console.log('Error sending message:', error);
throw new Error("Error sending message");
});
})
})
})