云功能以从特定应用发送FCM

时间:2020-05-17 18:11:16

标签: firebase google-cloud-functions firebase-cloud-messaging apple-push-notifications

我有一个包含两个应用程序(两个目标)的xCode项目,我正尝试从特定目标发送FCM,但它总是从第一个目标发送!

在index.js文件中

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp();

exports.sendNotificationForCompany = functions.firestore.document('test/{referenceID}').onCreate(async (snap, context) => {

    var theTitle = "Not"

    let payload = {
          notification: {
              title: theTitle,
              sound: 'default',
          }
      };

    const allTokens = await admin.firestore().collection('users').get();
    const tokens4 = [];
    allTokens.forEach((tokenDoc) => {
      if (tokenDoc.data().instanceIdToken){
        tokens4.push(tokenDoc.data().instanceIdToken)
      }
    });

    admin.messaging().sendToDevice(tokens4, payload);  
});

1 个答案:

答案 0 :(得分:1)

您可以根据主题发送通知。例如project-one-topic-unique-user-idproject-two-topic-unique-user-id。现在,根据主题发送通知

let message = {
   "topic": "project-two-topic-unique-user-id"
    "notification": {
       title: theTitle,
        sound: 'default',
    }
 }
}

admin.messaging().send(message)
  .then((response) => {
     // Response is a message ID string.
     console.log('Successfully sent message:', response);
  })
  .catch((error) => {
     console.log('Error sending message:', error);
  });