Пожарный Сервисный работник и push-уведомления - PullRequest
0 голосов
/ 11 июня 2018

У меня есть приложение Angular 5 (OSWindows 10), и я настроил манифест, sw (рабочий файл сервера), обновил angular-cli и index.html в соответствии с документацией FCM.Добавлен senderid.В своем рабочем файле я вызываю firebase.initializeApp с моим messagingSenderId.

Однако, когда я запускаю приложение, я получаю следующую ошибку: "Firebase: приложение Firebase не создано '[DEFAULT]' - вызовите Firebase App.initializeApp () (app / no-app)). "

Я попытался добавить следующий код (в моем message.service), но безуспешно:

private _messaging: firebase.messaging.Messaging;
private messageSource = new Subject();
currentMessage = this.messageSource.asObservable(); 

constructor(
private _afs: AngularFirestore,
@Inject(FirebaseApp) private _firebaseApp: firebase.app.App,
) {
this._messaging = firebase.messaging(this._firebaseApp);
}

... Я также проверил и тамнет другого sw, работающего.

Ответы [ 2 ]

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

Я решил это, добавив Firebase init в app.module.Проблема была в сроках.Посвящение произошло поздно, ПОСЛЕ службы было начато.

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

Вам нужно вызвать приложение инициализировать, как здесь, в веб-настройке:

https://firebase.google.com/docs/web/setup

<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    projectId: "<PROJECT_ID>",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);
</script>

Чтобы убедиться, что вы инициализировали приложение, вы можете проверить так:

    if (!firebase.apps.length) {
        //app not init do so now
        firebase.initializeApp(appConfig);
    }
...