Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
firebase.messaging不是Angular 9中的函数_Angular_Firebase_Firebase Cloud Messaging - Fatal编程技术网

firebase.messaging不是Angular 9中的函数

firebase.messaging不是Angular 9中的函数,angular,firebase,firebase-cloud-messaging,Angular,Firebase,Firebase Cloud Messaging,我逐行学习了本教程: 如何简单地将通知web放入Angular 9项目,在Angular CLI中,我放入: "assets": [ "src/favicon.ico", "src/assets", "src/firebase-messaging-sw.js", "src/manifest.json" ], 这是我的firebas

我逐行学习了本教程:

如何简单地将通知web放入Angular 9项目,在Angular CLI中,我放入:

    "assets": [
      "src/favicon.ico",
      "src/assets",
      "src/firebase-messaging-sw.js",
      "src/manifest.json"
    ],
这是我的firebase-messagin-sw.js

importScripts('https://www.gstatic.com/firebasejs/7.6.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.6.0/firebase-analytics.js');

firebase.initializeApp({
  apiKey: ******************,
  authDomain: ******************,
  databaseURL: ******************,
  projectId: ******************,
  storageBucket: ******************,
  messagingSenderId: ******************,
  appId: ******************,
  measurementId: ******************
});
console.log(firebase);
const messaging = firebase.messaging();
此文件位于我的根项目和我创建的通知服务中:

import { Injectable } from '@angular/core';
import { AngularFireMessaging } from '@angular/fire/messaging';
import { BehaviorSubject } from 'rxjs';


@Injectable()
export class NotificationService {

  currentMessage = new BehaviorSubject(null);

  constructor(private angularFireMessaging: AngularFireMessaging) {
    this.angularFireMessaging.messaging.subscribe((_messaging) => {
      _messaging.onMessage = _messaging.onMessage.bind(_messaging);
      _messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging);
    });
  }
  requestPermission() {
    this.angularFireMessaging.requestToken.subscribe(
      (token) => {
        console.log(token);
      },
      (err) => {
        console.error('Unable to get permission to notify.', err);
      }
    );
  }
  receiveMessage() {
    this.angularFireMessaging.messages.subscribe((payload) => {
      console.log('new message received. ', payload);
      this.currentMessage.next(payload);
    });
  }
}
加载应用程序时,我会遇到以下错误:Uncaught TypeError:firebase.messaging不是一个函数,就像Angular CLI没有加载js文件一样,但当我使用这个console.logfirebase时,它会给我一个不具有此函数的javascript对象,并且在出现此错误后:

我收到另一个错误:TypeError:未能更新作用域“”的ServiceWorkerhttp://localhost:4200/firebase-云消息推送范围'


我做错了什么?

据我所知,我想回答你的问题。 我想你也可以在firebase-messagin-sw.js上添加这个

importScripts('https://www.gstatic.com/firebasejs/7.18.0/firebase-messaging.js');
为了获得使用云消息传递的最佳体验,还可以添加Firebase SDK进行分析

importScripts('https://www.gstatic.com/firebasejs/7.18.0/firebase-analytics.js');

进一步参考:

据我所知,我想回答你的问题。 我想你也可以在firebase-messagin-sw.js上添加这个

importScripts('https://www.gstatic.com/firebasejs/7.18.0/firebase-messaging.js');
为了获得使用云消息传递的最佳体验,还可以添加Firebase SDK进行分析

importScripts('https://www.gstatic.com/firebasejs/7.18.0/firebase-analytics.js');

进一步参考:

它工作得很好,就是这个进口货;非常感谢=它工作得很好,就是这个进口货;多谢各位=