7

में फायरबेस क्लाउड मैसेजिंग को तुरंत चालू करने के लिए कैसे Angular2/TypeScript/AngularFire2 में फायरबेस क्लाउड मैसेजिंग को तुरंत चालू करें?Angular2

यह यहाँ जावास्क्रिप्ट के लिए वर्णित है: https://firebase.google.com/docs/cloud-messaging/js/client

उत्तर

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

आपके उत्तर के लिए धन्यवाद! जब मैं '' 'निजी _ संदेश भेजता हूं: firebase.messaging.Messaging; '' 'मुझे मिलता है:' '[ts] मॉड्यूल 'फायरबेस' में कोई निर्यात सदस्य 'संदेश' नहीं है। कोई '' ? – daslicht

+1

आप 'फायरबेस' का किस संस्करण का उपयोग कर रहे हैं? मैंने सोचा कि मैंने उत्तर पोस्ट करने से पहले इसे चेक किया है। मैं इसे दोबारा जांच दूंगा। – cartant

+0

मेरे पास सिर्फ '' '" angularfire2 "है:"> = 2.0.0-beta.6 "' '' मेरे पैकेज.जेसन में। इसमें '' '" फ़ायरबेस "है:" 3.3.0 "' '' इसके पैकेज.जेसन में निर्भरता के रूप में। देखें: https://github.com/angular/angularfire2/blob/master/package.json#L43 – daslicht