答えて

13

firebase.messaging()機能は、オプションのパラメータとしてFirebaseアプリのインスタンスを取ります。 AngularFire2でそれを配線する

、あなたはAngularFire2perform 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をセットアップする必要があります。それは私がよく知らないものです。

+0

お返事ありがとうございます! '' 'private _messaging:firebase.messaging.Messaging;を宣言すると、 '' '私は:' '' [ts]モジュール 'firebase'にはエクスポートされたメンバーのメッセージがありません。 任意 '' ' ? – daslicht

+1

'firebase'のどのバージョンを使用していますか?私は答えを投稿する前にそれをチェックしたと思った。私はそれをもう一度チェックします。 – cartant

+0

私のpackage.jsonに '' 'angularfire2": "> = 2.0.0-beta.6" '' 'があります。 '' firebase ":" 3.3.0 "' ''をpackage.jsonに依存しています。 以下を参照してください:https://github.com/angular/angularfire2/blob/master/package.json#L43 – daslicht

関連する問題