首页 > 解决方案 > 未捕获的类型错误:无法使用具有角度延迟加载的firebase云消息推送通知读取未定义的属性“id”

问题描述

我从媒体关注这个博客: https ://medium.com/mighty-ghost-hack/angular-8-firebase-cloud-messaging-push-notifications-cc80d9b36f82

我的 message.service.ts 文件:

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(
      (_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);
      })
  }
}

我的 app.component.ts 文件:

import { Component } from '@angular/core';
import { MessagingService } from '../app/core/services/messaging.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  message;

  constructor(
    private messagingService: MessagingService
  ) {}


ngOnInit(){
      this.messagingService.requestPermission()
      this.messagingService.receiveMessage()
      this.message = this.messagingService.currentMessage
      }
}

如果发现任何错误,请帮助任何人。谢谢!

标签: javascriptangularfirebasepush-notificationfirebase-cloud-messaging

解决方案


推荐阅读