FCM检查属性是否为零(node.js)

时间:2018-12-03 16:30:40

标签: node.js firebase firebase-cloud-messaging

我目前正在使用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");
            });

      })

    })

  })

0 个答案:

没有答案