【发布时间】:2018-06-07 18:34:56
【问题描述】:
如何向登录我网站的一位用户发送通知。 如何使用 angular2、typescript 为系统或设备生成 fcmtoken。 请帮我解决这个问题。如果有人有任何想法,请告诉我。
import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase';
import 'rxjs/add/operator/take';
import { BehaviorSubject } from 'rxjs/BehaviorSubject'
import { Observable } from 'rxjs/Observable';
import { Http, Response } from '@angular/http';
import { Headers, RequestOptions } from '@angular/http';
@Injectable()
export class MessagingService {
messaging = firebase.messaging()
currentMessage = new BehaviorSubject(null)
constructor(private db: AngularFireDatabase, private afAuth: AngularFireAuth) { }
updateToken(token) {
this.afAuth.authState.take(1).subscribe(user => {
if (!user) return;
const data = { [user.uid]: token }
this.db.object('fcmTokens/').update(data)
})
}
getPermission() {
this.messaging.requestPermission()
.then(() => {
console.log('Notification permission granted.');
return this.messaging.getToken()
})
.then(token => {
console.log(token)
// this.updateToken(token)
})
.catch((err) => {
console.log('Unable to get permission to notify.', err);
});
}
receiveMessage() {
this.messaging.onMessage((payload) => {
console.log("Message received. ", payload);
this.currentMessage.next(payload)
});
}
}
我正在创建服务 MessagingService.ts 以帮助该站点
https://angularfirebase.com/lessons/send-push-notifications-in-angular-with-firebase-cloud-messaging
但它给定的错误 ConnectionBackend 没有提供程序
【问题讨论】:
标签: typescript firebase firebase-cloud-messaging angular2-services