Установить сообщения о проблемах обмена сообщениями в firebase / only-available-in-sw - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь настроить firebase в моем проекте angularJS для использования фонового уведомления и уведомления приложения.

Что я сделал:

  • установка firebase с помощью npm install --save firebase
  • добавить файл manifest.json с идентификатором отправителя в корневой каталог
  • поместить эти сценарии в <head>:
    • <script src="node_modules/firebase/firebase-app.js"></script>
    • <script src="node_modules/firebase/firebase-messaging.js"></script>
  • Добавить этот скрипт сразу после открытия <body>:

    <script>
        var config = {
            apiKey: "AIzaSyDAVuWKUL-aPoGasdEi-EMR7uFN1gtgk0s",
            authDomain: "testproject-d71.firebaseapp.com",
            databaseURL: "https://testproject-12d71.firebaseio.com",
            projectId: "testproject-12d71",
            storageBucket: "",
            messagingSenderId: "123128116401"
        };
        firebase.initializeApp(config);
    </script>
    
  • Добавить этот скрипт в конце <body>

    • <script src="js/configFcm.js"></script>

, что:

const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function(payload) {
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    // Customize notification here
    const notificationTitle = 'Title';
    const notificationOptions = {
        body: 'body.',
        icon: '/firebase-logo.png'
    };

    return self.registration.showNotification(notificationTitle,
        notificationOptions);
});

Это все, что я сделал, я не настроил в уведомлении приложенияпока только фоновые.Я получил сообщение об ошибке в консоли:

Необработанный код: «Messaging / Only-Available-In-SW»

Сообщение: «Messaging: этот метод доступен в контексте работника службы (messaging / only-available-in-sw). "

stack:" FirebaseError: Messaging: этот метод доступен в контексте рабочего сервиса. (messaging / only-available-in-sw)

Что такое сервисный работник? Это только на стороне клиента? Я выполняю эти сценарии из index.html, поэтому я в замешательстве.

1 Ответ

0 голосов
/ 13 июня 2018

В настоящее время вы используете библиотеку Firebase по умолчанию.Вместо этого используйте его с библиотекой angularfire, которая позаботится о большинстве вещей, связанных с firebase.Ниже приведено базовое руководство по использованию firebase с angularfire:

  1. Шаги инициализации в порядке.
  2. Вставьте angularfire в ваш index.html.
    <!-- AngularFire --> <script src="https://cdn.firebase.com/libs/angularfire/2.3.0/angularfire.min.js"></script>.
  3. Зарегистрируйте firebase как модуль в приложении.
    var app = angular.module("sampleApp", ["firebase"])
  4. Теперь все готово.

Пожалуйста, следуйте ссылкам ниже для получения дополнительной информации о том, какиспользовать angularfire с огненной базой.

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