如何在 Angular2 中实例化 Firebase Cloud Messaging

How to instantiate Firebase Cloud Messaging in Angular2

如何在 Angular2/TypeScript/AngularFire2 中实例化 Firebase Cloud Messaging?

此处针对 JavaScript 进行了描述: https://firebase.google.com/docs/cloud-messaging/js/client

firebase.messaging() 函数将 Firebase 应用程序实例作为可选参数。

要将它与 AngularFire2 连接起来,您可以让 AngularFire2 perform the app initialization 并创建 Firebase 应用程序实例,然后可以注入该应用程序实例(例如,注入服务)并像这样将其传递给 firebase.messaging()

import { Inject, Injectable } from "@angular/core";
import { FirebaseApp } from "angularfire2";
import * as firebase from 'firebase';

@Injectable()
export class SomeService {

    private _messaging: firebase.messaging.Messaging;

    constructor(@Inject(FirebaseApp) private _firebaseApp: firebase.app.App) {

        this._messaging = firebase.messaging(this._firebaseApp);
        this._messaging.requestPermission()
            .then(() => { ... })
            .catch((error) => { ... });
    }
}

您需要设置您引用的文章中提到的 web app manifest。那是我不熟悉的东西。

似乎需要导入:

import '@firebase/messaging';