我目前正在使用node.js设置FCM。
如果消息是图像,则它具有imageUrl属性。我想检查message.imageUrl是否为nil,如果是,则表示消息为文本;如果message.imageUrl存在,则该消息是图像,我将相应地配置通知的正文。
我的问题是如何检查message.imageUrl = nil,以便可以将通知的正文设置为包含消息文本(如果message.imageUrl为nil)或“图像”(如果message.imageUrl!)。 =无)。我在底部包括了整个功能,但是我特别关心的部分是通知变量的通知属性,我在其中加上了星号。
我对FCM(以及编码)还很陌生,所以我不太熟悉这种格式的代码。任何帮助将不胜感激,谢谢!
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,
if (message.imageUrl == nil) {
body: user.username + ': ' + message.text
} else {
body: user.username + ': image'
}
},**
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");
});
})
})
})