Как отправить несколько уведомлений разным людям с разным содержанием в одно время?

Как отправить пуш-уведомления через Firebase разным пользователям одновременно, при этом каждое уведомление должно содержать уникальный текст? Например, через Expo можно передать массив сообщений и отправить их одним запросом. Возможно ли реализовать подобное через Firebase Cloud Messaging, учитывая что сейчас уведомления отправляются по одному и необходимо для каждого уведомления указывать токен устройства и уникальный текст?
  • 4 июля 2024 г. 10:12
Ответы на вопрос 1
Для отправки нескольких уникальных уведомлений разным пользователям одновременно через Firebase Cloud Messaging вы можете использовать Firebase Admin SDK. 

Вам необходимо создать массив объектов уведомлений, где каждый объект содержит токен устройства пользователя и уникальный текст сообщения. Затем вы можете использовать Firebase Admin SDK для отправки каждого уведомления по отдельности, используя метод `messaging.sendToDevice` или `messaging.sendMulticast`.

Пример кода на Node.js для отправки нескольких уведомлений разным пользователям:

```javascript
const admin = require("firebase-admin");

// Инициализация Firebase Admin SDK
admin.initializeApp({
  credential: admin.credential.cert(serviceAccountKey.json),
  databaseURL: "https://your-project-id.firebaseio.com"
});

const messages = [
  { token: "device-token-1", text: "Уведомление для пользователя 1" },
  { token: "device-token-2", text: "Уведомление для пользователя 2" }
];

messages.forEach(message => {
  const notification = {
    notification: {
      title: "Заголовок уведомления",
      body: message.text
    }
  };

  admin.messaging().sendToDevice(message.token, notification)
    .then(response => {
      console.log("Уведомление успешно отправлено:", response);
    })
    .catch(error => {
      console.error("Ошибка отправки уведомления:", error);
    });
});
```

Обратите внимание, что ваш сервер должен иметь доступ к Firebase Admin SDK и иметь необходимые права доступа для отправки уведомлений через Firebase Cloud Messaging.
Похожие вопросы