как включить статус конечных точек уведомлений aws pu sh? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь отправить уведомление pu sh на устройства, и когда я отправляю на несколько устройств, я получаю сообщение об успехе на некоторых устройствах, и получение конечной точки отключается на нескольких, а когда я отправляю на это конкретное устройство индивидуально это показывает сообщение об успехе, как я должен обойти эту проблему. таким образом я пытаюсь отправить уведомление pu sh на несколько устройств.

const userCampaign = async (activityObject) => {
  const activitiesRefSnapshot = await db
    .collection("Activities")
    .get();
  const phone = []
  activitiesRefSnapshot.forEach(async (doc) => {
    const deviceToken = [];
    let phoneNumber = doc.data().attachment["Phone Number"].value;
    (phone.push(phoneNumber))
    const update = await db
      .collection("Updates")
      .where("phoneNumber", "==", phoneNumber)
      .get();

    update.forEach((docs) => {
      let dataSnapshot = docs.id;
      console.log(dataSnapshot)
        if(docs.data().registrationToken === ''){
            return;
        }

        else if(docs.data().registrationToken === undefined)
        {
            return ;
        }
      deviceToken.push(docs.data().registrationToken);
    });

    if(deviceToken.length>0){
      deviceToken.forEach(device => {
        let params = {
            PlatformApplicationArn:
              "arn:aws:sns:us-east-1:1234566:app/GCM/pushNotification",
            Token: device,
          };
          let payload2 = JSON.stringify({
            default: "push notification",
            GCM: JSON.stringify({
              notification: {
                body: "body",
                 title: "Check-in Reminder",
              },

            }),
          });
          sns.createPlatformEndpoint(params,(err,data) => {
            if(err){
                console.log(err)
            }
            else{
                sns.publish(
                    {
                      Message: payload2, // Required
                      MessageStructure: "json",
                      TargetArn: data.EndpointArn
                    },
                   async function (err, data) {
                      if (err) {

                        await db1.collection("Campiagns").doc('xyxsbsjvjsv).set(
                          {
                            history: {
                              Failure: admin.firestore.FieldValue.increment(1),
                            },
                          },
                          { merge: true }
                        );
                        console.log(err.stack);

                      }
                      else{

                        await db1.collection("Campiagns").doc('xtuuhddh').set(
                          {
                            history: {
                              success: admin.firestore.FieldValue.increment(1),
                            },
                          },
                          { merge: true }
                        );
                        console.log(data)
                      }
                    }
                  );

            }
        })
      })
    }


  });

  return;
};
module.exports = { userCampaign };
...