Сообщения Firebase Web FCM (обмен сообщениями / использование открытого ключа до получения токена) - PullRequest
0 голосов
/ 06 декабря 2018

Я получаю следующую ошибку при выходе и входе в свое приложение.

code: "messaging/use-public-key-before-get-token",
message: "Messaging: Error (messaging/use-public-key-before-get-token)."

Каждый раз, когда я вхожу в свое приложение, я звоню messaging.requestPermission(), а затем messaging.getToken().В первый раз приложение работает нормально, но если я выйду из системы и снова войду в систему (снова вызывая permission и getToken), вернув вышеуказанную ошибку.

Iam, используя следующий код:

   requestPermission() {
    const messaging = firebase.messaging();
    messaging.usePublicVapidKey(this.PUBLIC_VPA);

        messaging.requestPermission().then(() => {
            console.log('Notification permission granted.');

            // Get Instance ID token. Initially this makes a network call, once retrieved
            // subsequent calls to getToken will return from cache.
            messaging.getToken().then((currentToken) => {
                if (currentToken) {
                    console.log(currentToken, 'currentToken');
                    this.sendTokenToServer(currentToken);
                } else {
                    console.log('No Instance ID token available. Request permission to generate one.');
                    this.generateRefreshToken();
                }
            }).catch((err) => {
                console.log('An error occurred while retrieving token. ', err);
            });

        }).catch((err) => {
            console.log('Unable to get permission to notify.', err);
        });

}

Любые предложения будут полезны, спасибо

1 Ответ

0 голосов
/ 14 января 2019

Я столкнулся с вашим вопросом, когда у меня возникла та же проблема, но я исправил ее, обновив экземпляр Firebase.В большинстве случаев вам понадобится только один экземпляр FB, но вы получите конфликты, если не сумеете осторожно использовать приложение в Firebase.

Когда вы вошли в систему, а затем пытались выйти из системы / войтиОпять же, будут возникать ошибки, так как вы можете пытаться использовать службы обмена сообщениями FB, которые содержат противоречивую информацию при попытке получить экземпляр.

Я использую Redux и фактически обновляю экземпляр FB firebase.initializeApp({config}) через прослушивательэто синхронизировано с моим магазином.

Надеюсь, вы также смогли решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...