Отсутствует значение конфигурации приложения: "projectId", хотя я передаю его в - PullRequest
1 голос
/ 15 февраля 2020

Я могу отправлять, просматривать и нажимать веб-уведомления в порядке, и ничего не отображается неправильно. Однако консоль выдает это, когда я нажимаю на уведомление

Uncaught FirebaseError: Messaging: Missing App configuration value: "projectId" (messaging/missing-app-config-values).

projectId определенно передается в конфигурацию

Chrome версия: версия 79.0.3945.130 (Официальная сборка) (64- немного)

вот как я настраиваю firebase:

var messaging;
if( firebase.messaging.isSupported() ){

    var config = {
      apiKey: "*************",
      authDomain: "*************",
      databaseURL: "*************",
      projectId: "*************",
      storageBucket: "*************",
      messagingSenderId: "*************",
      appId: "*************"
    };
    firebase.initializeApp(config);
    messaging = firebase.messaging();
    messaging.usePublicVapidKey("*************");
    messaging.onMessage(function(payload) {
        ...
        ...
    }
}

И мой firebase-messeging-sw. js:

self.addEventListener('notificationclick', function(event) {
    ...
    ...
}
importScripts('https://www.gstatic.com/firebasejs/7.8.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.8.2/firebase-messaging.js');

firebase.initializeApp({'messagingSenderId': '***********'});

const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function(payload) {
    ...
});

Есть идеи?

1 Ответ

2 голосов
/ 15 февраля 2020

Вы должны позвонить initializeApp() до вызова любых других API Firebase. Ваш код вызывает firebase.messaging.isSupported() сначала до initializeApp(). Похоже, что вы хотите инициализировать Firebase, только если FCM будет работать, но это просто не поддерживается. Я предлагаю инициализировать Firebase безоговорочно. Это очень мало затрат, если вы фактически не используете какой-либо из продуктов Firebase.

...