В моем приложении angular я хотел добавить несколько уведомлений web-pu sh с помощью firebase.
import { Component } from "@angular/core";
import { AngularFireMessaging } from "@angular/fire/messaging";
import { mergeMapTo } from "rxjs/operators";
@Component({
selector: "app-home",
templateUrl: "home.page.html",
styleUrls: ["home.page.scss"],
})
export class HomePage {
constructor(private afMessaging: AngularFireMessaging) {}
requestPermission() {
this.afMessaging.requestPermission
.pipe(mergeMapTo(this.afMessaging.tokenChanges))
.subscribe(
(token) => {
console.log("Permission granted! Save to the server!", token);
this.afMessaging.messages.subscribe(
(message) => {
console.log(message);
},
(error) => {
console.log("error", error);
}
);
},
(error) => {
console.error(error);
}
);
}
}
Я могу получить токен, а в консоли разработчика в разделе «Приложения» находятся запросы уведомлений, когда я отправляю тестовое сообщение через Firebase.
Но в моей консоли я получаю эту ошибку:
zone-evergreen.js:659 Unhandled Promise rejection: this._next is not a function ; Zone: <root> ; Task: ServiceWorkerContainer.addEventListener:message ; Value: TypeError: this._next is not a function
at WindowController.next [as onMessageCallback] (Subscriber.js:49)
at WindowController.<anonymous> (index.esm.js:1067)
at step (tslib.es6.js:100)
at Object.next (tslib.es6.js:81)
at tslib.es6.js:74
at new ZoneAwarePromise (zone-evergreen.js:960)
at __awaiter (tslib.es6.js:70)
at WindowController.push../node_modules/@firebase/messaging/dist/index.esm.js.WindowController.messageEventListener (index.esm.js:1056)
at ServiceWorkerContainer.<anonymous> (index.esm.js:890)
at ZoneDelegate.invokeTask (zone-evergreen.js:399) TypeError: this._next is not a function
Я использую Angular 9 и angular / fire и firebase.