# #angular #firebase-cloud-messaging #angular-service-worker
#угловой #firebase-облако-обмен сообщениями #угловой-обслуживающий работник
Вопрос:
В моем проекте firebase не может получить разрешение на уведомление и возвращает ошибку. Ошибка возникает в методе requesttoken (). Я использую Firebase 7.6.0 в angular 8.
`Uncaught TypeError: Cannot read properties of undefined (reading 'filter') at _firebaseAppFactory (firebase.app.module.js:27) at MapSubscriber.project (messaging.js:22) at MapSubscriber._next (map.js:29) at MapSubscriber.next (Subscriber.js:49) at Notification.observe (Notification.js:20) at QueueAction.dispatch (observeOn.js:25) at angularfire2.js:20 at ZoneDelegate.invoke (zone-evergreen.js:359) at Zone.runGuarded (zone-evergreen.js:134) at QueueAction.workInZone (angularfire2.js:19)`
Это мои файлы. Работник сферы услуг
import firebase from "firebase/compat/app"; const app=firebase.initializeApp({ ... }); const messaging = firebase.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( (_messaging) =gt; { _messaging.onMessage = _messaging.onMessage.bind(_messaging); _messaging.onTokenRefresh = _messaging.onTokenRefresh.bind(_messaging); } ) } requestPermission() { this.angularFireMessaging.requestToken.subscribe( (token) =gt; { console.log(token); }, (err) =gt; { console.error('Unable to get permission to notify.', err); } ); } receiveMessage() { this.angularFireMessaging.messages.subscribe( (payload) =gt; { console.log("new message received. ", payload); this.currentMessage.next(payload); }) } }