Обмен сообщениями в Firebase getToken () не разрешается - PullRequest
0 голосов
/ 22 февраля 2019

Я звоню messaging.getToken (), но Обещание никогда не разрешается.

let msging

const msgTokenPromise = navigator.serviceWorker.register('/sw.js')
        .then(reg => {
          if(firebase.messaging.isSupported()) {
            msging = firebase.messaging()
            // msging.onTokenRefresh = msging.onTokenRefresh.bind(msging)
            msging.useServiceWorker(reg)
            return msging.requestPermission()
          } else throw "messaging not supported"
        })
        .then (() => {let prom = msging.getToken();
                      console.log("tokenProm", prom);
                      return prom
                    })
        .catch(err => console.log('permission error', err))

const msgToken$ = 
        concat( from(msgTokenPromise)
              , defer(() => Observable.create(msging.onTokenRefresh).pipe(switchMap(() => from(msging.getToken()))))
              )


msgToken$.subscribe(currToken => {console.log('currToken', currToken)}


Я получаю журнал tokeProm как ожидающее обещание в консоли, но никогда не регистрирую токен.Не могу найти решение этой проблемы и не могу найти ошибку.Я использую с rxjs.

ОБНОВЛЕНИЕ: Когда я очищаю кеш и работника сервиса и перезагружаю его теперь разрешается.Поэтому мой вопрос звучит так: что может привести к тому, что вызов getToken () не разрешится?

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