Я пытаюсь отправить уведомление 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 };