1

FCM Token недействителен для хрома часто, но он работает для firefox. Я реализовал обратный вызов onTokenRefresh(). Вот моя реализацияFCM Token недействителен для хрома часто

messaging.onTokenRefresh(function() { console.log("refresh token called(webpush)"); messaging.getToken().then(function (refreshedToken) { console.log('Token refreshed.', refreshedToken); // post data to db }); });

Как проверить, что выше реализации работает должным образом. Не удалось сохранить обновленный токен в нашей БД.

+0

Я думаю, вы можете вызвать этот метод непосредственно в другой функции, скажем, функцию 'f() {...}', которую вы можете называть 'f()' на пользовательском событии. Таким образом, вы можете проверить, работает ли ваш код правильно или нет. Реальный вызов 'messaging.onTokenRefresh' не должен вас беспокоить, это нужно, чтобы google вызывал его, когда это было необходимо. – Merka

ответ

1

В настоящий момент обратный вызов обновления токена не используется. Но это будет в будущем обновлении.

Если вы хотите, чтобы проверить вашу логику можно просто вытащить обратный вызов и вызвать I непосредственно

const onRefreshCb = function() { 
    messaging.getToken()...... 
}; 

messaging.onTokenRefresh(onRefreshCb); 

Чтобы проверить вы просто позвоните onRefreshCb(), чтобы проверить свою логику, используя deleteToken, если вы хотите, чтобы убедиться, вы получите новый токен.

+0

Спасибо за полезный ответ. FCM Token часто недействителен для хрома, но он работает для firefox. Пожалуйста, предложите –

+0

@Gaunt Face Проблема заключается в том, что FCM аннулирует токен в фоновом режиме. Затем браузер становится неактивным для сервера, который не может удаленно вызывать onRefreshCb. –

+0

FCM в настоящий момент недействителен. Когда это в конечном итоге приведет к недействительности маркера, оно не приведет к недействительности, пока браузер не сможет запустить callBak onTokenRefresh. Примечание: Я работаю над библиотекой FCM в Google. –