Chr*_*ris 6 firebase-cloud-messaging angular
我正在尝试按照此链接从 FCM 生成令牌。我在messaging.service. 我无法实现angularFireMessaging.messaging,它在消息关键字中显示错误为
'AngularFireMessaging' 类型不存在属性 'messaging'
代码
import { Injectable } from '@angular/core';
import { AngularFireMessaging } from '@angular/fire/messaging';
import { BehaviorSubject } from 'rxjs'
@Injectable()
export class MessagingService {
currentMessage = new BehaviorSubject(null);
constructor(private angularFireMessaging: AngularFireMessaging) {
this.angularFireMessaging.messaging.subscribe( //issue here in messaging
(_messaging) => {
_messaging.onMessage = _messaging.onMessage.bind(_messaging);
_messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging);
}
)
}
requestPermission() {
this.angularFireMessaging.requestToken.subscribe(
(token) => {
console.log(token);
},
(err) => {
console.error('Unable to get permission to notify.', err);
}
);
}
receiveMessage() {
this.angularFireMessaging.messages.subscribe(
(payload) => {
console.log("new message received. ", payload);
this.currentMessage.next(payload);
})
}
}
Run Code Online (Sandbox Code Playgroud)
我哪里出错了请帮帮我
我认为回到旧版本不是一个理想的解决方案。我认为这个问题的作者遵循了一个教程有点过时了。
对于最新版本,
this.angularFireMessaging.messaging.subscribe( //issue here in messaging
(_messaging) => {
_messaging.onMessage = _messaging.onMessage.bind(_messaging);
_messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging);
}
)
Run Code Online (Sandbox Code Playgroud)
是不是必需的
删除构造函数中的所有内容,并使用以下最新版本更新您的 package.json(在撰写此答案时)
"@angular/fire": "^6.0.0",
"firebase": "^7.15.1",
Run Code Online (Sandbox Code Playgroud)
它会工作得很好。
如果您想了解更多详细信息,请关注此官方教程https://github.com/angular/angularfire/blob/master/docs/messaging/messaging.md
只需删除它们即可。该错误清楚地告诉您:
类型“AngularFireMessaging”上不存在属性“ messaging ”
从:
constructor(private angularFireMessaging: AngularFireMessaging) {
this.angularFireMessaging.messaging.subscribe( //issue here in messaging
(_messaging) => {
_messaging.onMessage = _messaging.onMessage.bind(_messaging);
_messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging);
}
)
}
Run Code Online (Sandbox Code Playgroud)
进入:
constructor(private angularFireMessaging: AngularFireMessaging) {}
Run Code Online (Sandbox Code Playgroud)
参考:https://github.com/angular/angularfire/blob/HEAD/docs/messaging/messaging.md
| 归档时间: |
|
| 查看次数: |
4588 次 |
| 最近记录: |