Как создать тему в уведомлениях FCM
Я пытаюсь использовать Firebase-Notification API, сервис отлично работает, когда я отправляю нисходящее сообщение с консоли на приложение, но как отправить сообщение теме зарегистрированных пользователей?
я сделал на стороне android
FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
но когда я попытаюсь отправить нисходящее сообщение из консоли в тему, он говорит
This project does not have any topics
ИЗМЕНИТЬ:
я выяснил, что после сопоставления темы для отображения в Firebase Console требуется до 1 дня.
Ответы
Ответ 1
Во-первых, учитывая, что IID_TOKEN
- ваш токен регистрации, а TOPIC_NAME
- это тема, которую вы хотите создать, вам нужно создать тему, выполнив POST запрос
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
И чтобы проверить созданные темы, сделайте запрос GET по этому URL
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true
и вставьте свой API_KEY в HEADERS вашего запроса
Authorization: key=YOUR_API_KEY
Ваша тема займет 1 день, чтобы отображаться в консоли Firebase, поэтому для тестирования вы можете сделать запрос на завивание или использовать программное обеспечение, например Расширенный клиент REST
Ответ 2
Это альтернативный путь.
Если вы подписываете клиентское приложение на неиспользуемую тему, то тема также будет создана без вызова любого запроса URL-адреса firebase.
В Firebase Console также появится несколько часов.
Используя общий пример google: https://github.com/firebase/quickstart-android/tree/master/messaging, вы можете подтвердить то же самое.
FirebaseMessaging.getInstance().subscribeToTopic("news");
Log.d(TAG, "Subscribed to news topic");
Ответ 3
Firebase требует времени для создания новой темы в консоли. В моем случае новая тема была создана через 4 часа.
Ответ 4
Вы можете создать тему с помощью http api:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
1. IID_TOKEN= токен регистрации устройства, вы можете найти его с помощью следующей команды на вашем устройстве Android:
String IID_TOKEN = FirebaseInstanceId.getInstance().getToken();
2.TOPIC_NAME= новое имя темы
3.Authorization: key = YOUR_API_KEY. Задайте этот параметр в заголовке. Посмотрите на скриншот:
Создание новой темы через Advanced rest client
YOUR_API_KEY:
console.firebase.google.com
и отправьте запрос, и вы получите http-статус "ОК".
Затем вы можете получить информацию обо всех ваших темах в своем текущем проекте со следующими api:
https://iid.googleapis.com/iid/info/IID_TOKEN?details=true
здесь нужно добавить ключ авторизации в заголовок запроса, и вы получите список тем: темы с ответами
Я рекомендую прочитать эту статью об идентификаторе/сервере экземпляра Google