Ошибка «Запрос отсутствует учетная запись аутентификации» при вызове firebase.messaging.getToken () - PullRequest
1 голос
/ 22 апреля 2019

Я следую инструкции , чтобы добавить push-уведомления в веб-приложение, включая вызов firebase.messaging.usePublicVapidKey с помощью клавиши VAPID. Однако, когда я звоню getToken, я получаю следующую ошибку:

В запросе отсутствуют необходимые учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации. Смотри https://developers.google.com/identity/sign-in/web/devconsole-project

Я уже использую ключ VAPID, и нигде в этом руководстве Google не говорил, что для входа в Google OAuth требуется. Как я могу это исправить?

 var messaging = firebase.messaging();
 messaging.usePublicVapidKey('redacted');

 function obtenerToken() {
         messaging.getToken().then(function (nuevoToken) {
                if (nuevoToken) {
                    token = nuevoToken;
                } else {
                    messaging.requestPermission().then(obtenerToken)
                        .catch(function (err) { console.log('La web no tiene permiso para recibir notificaciones ', err); });
                }
            }).catch(function (err) { console.log('Error al obtener token de Firebase ', err); });
        }
        obtenerToken();

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

удалось исправить проблему. Оказывается, я скопировал конфиг из одного проекта и ключ VAAPI из другого проекта. D'ой!

0 голосов
/ 23 апреля 2019

Вы инициализировали с помощью объекта конфигурации Firebase?

import firebase from "firebase/app";
import "firebase/messaging";

const firebaseConfig = {
  apiKey: "api-key",
  authDomain: "project-id.firebaseapp.com",
  databaseURL: "https://project-id.firebaseio.com",
  projectId: "project-id",
  storageBucket: "project-id.appspot.com",
  messagingSenderId: "sender-id",
};

if (!firebase.apps.length) {
  firebase.initializeApp(firebaseConfig);
}

let messaging;
try {
  messaging = firebase.messaging();
  messaging.usePublicVapidKey("publicVapidKey");
} catch (e) {
  messaging = null;
}

Вы задали белый рабочий домен для ключей API браузера и идентификаторов клиентов в консоли разработчика Google?

Вы установили файл firebase-messaging-sw.js?

Вот так.

// change your using firebase version
importScripts("https://www.gstatic.com/firebasejs/5.10.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/5.10.0/firebase-messaging.js");

const messagingSenderId = "your sender id here";
firebase.initializeApp({ messagingSenderId });

try {
  const messaging = firebase.messaging();
} catch (e) {}

См:

Если не работает, попробуйте быстрый запуск .

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