Я столкнулся с этой драматической проблемой с моим приложением android при использовании Firebase. 1. Мое приложение получает токен при первом запуске 2. Я могу отправить уведомление с консоли firebase на зарегистрированный токен 3. Если я попытаюсь отправить уведомление снова с консоли сразу после шага 2. Он показывает мне "незарегистрированный токен" после второй попытки.
У меня есть все необходимые настройки, которые уже есть в манифесте, и файл google service.json также имеет правильную конфигурацию. Я считаю, что все правильно, потому что приложение может получать уведомление один раз, и проблема начинается только после этого.
Обновление 1: Если я удалю приложение и переустановить его, то также я могу получать уведомление только один раз.
Те, кто хочет посмотреть на код, вот как я получаю токен:
@Override
public void onTokenRefresh() {
//Getting registration token
refreshedToken = FirebaseInstanceId.getInstance().getToken();
//Displaying token on logcat
Log.d(TAG, "Refreshed token: " + refreshedToken);
saveDeviceToken(refreshedToken);
}
Это получает вызовы только с первым запуском, и после этого я не видел, чтобы он вызывался (что, я думаю, ожидается поведение).
Полученный OnMessage также вызывается при первом уведомлении, а затем он никогда не отзывается:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d("FCM", "From: " + remoteMessage.getFrom());
if (remoteMessage.getNotification() != null) {
Log.d("FCM", "Notification Message Body: " + remoteMessage.getNotification().getBody());
sendNotification(remoteMessage.getNotification().getBody());
}
}
Обновление 2: Пытался поразить HTTP-api из FCM с помощью того же ключа и токена сервера и получил следующий ответ:
{
"multicast_id": 6286279702096230688,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "NotRegistered"
}
]
}
Просто, чтобы избежать перекрестных вопросов, несколько деталей:
- Студия Android: v2.3.1
- Версия сервисной программы Google: 10.0.1
- Библиотеки включены: ядро, база данных, хранилище, обмен сообщениями - все имеют ту же версию, что и сервис google play 10.0.1
Обновление 3: авария Firebase, база данных и хранилище работают в одном проекте (который показывает, что файл google service.json верен).
Пожалуйста, помогите мне исправить это.