如何在 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';
如何在 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';