РЕДАКТИРОВАТЬ: проверяя журналы моего клиентского приложения, я вижу, что сообщение действительно получено, но уведомление не отправляется независимо от того, находится ли оно на переднем плане или на заднем плане (где при использовании консоли оно показывает pushУведомление).
Я следовал документации и все реализовал. Когда я пытаюсь отправить сообщение в тему из консоли Cloud Messaging в Firebase, он работает просто отлично, но когда я пытаюсь отправить его с помощью облачной функции, он возвращает успешный результат, но клиент никогда не получает уведомление.
Вот моя облачная функция. Он используется для информирования владельца ресторана о новых бронированиях:
function sendNotification(businessID: string, partySize : number, arrivalTime : string){
const message = {
data: {
content: 'New reservation for '+ partySize + 'people arriving at ' + arrivalTime
},
topic: businessID
};
// Send a message to devices subscribed to the provided topic.
return 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);
});
}
Эта функция вызывается при создании нового бронирования, сформируйте этого слушателя:
exports.newReservation = functions.firestore.document('claimed_deals/{claimedDealID}').onCreate((snap, context) => {
const newReservationDoc = snap.data();
if (newClaimedDeal !== undefined) {
const userID = newReservationDoc .customer_ID;
const dealID = newReservationDoc .deal_ID;
const promises: any = [];
//other promises
promises.push(sendNotification(newReservationDoc .business_ID, newReservationDoc.customer_party_size, newReservationDoc.arrivalTime));
return Promise.all(promises);
} else {
return null;
};
});
Так что я продолжаю получать этот журналSuccessfully sent message...
но в клиентском приложении ничего не появляется. Когда я пытаюсь сделать это вручную из консоли, в тот же ресторан, я получаю уведомление без проблем. То же самое касается других ресторанов. Что я не так делаю?