Я создаю приложение ionic cordova с push-уведомлениями, используя FCM.но когда я вызываю getToken () в провайдере fcm.ts, он зацикливается.
это код.
async getToken() {
console.log("in getToken");
let token;
if (this.platform.is('android')) {
console.log("in android");
token = await this.firebaseNative.getToken();
console.log("token"+token);
}
if (this.platform.is('ios')) {
token = await this.firebaseNative.getToken();
await this.firebaseNative.grantPermission();
}
консольный журнал продолжает записывать эти журналы после вызова этого.
in get Token
in android
in get Token
in android
вот код, где я это вызываю.это в конструкторе home.ts
constructor(private storage: Storage, public nav: NavController, public popoverCtrl: PopoverController,
public commonSerivce: CommonService, private modalCtrl: ModalController,
private actionSheetCtrl: ActionSheetController, public camera: Camera,
public imagePicker: ImagePicker, public toastCtrl: ToastController, public platform: Platform,
public loadingCtrl: LoadingController,fcm: FcmProvider,public firebaseNative: Firebase) {
platform.registerBackButtonAction(() => {
this.selectedImages = [];
},1);
fcm.getToken();
// Listen to incoming messages
fcm.listenToNotifications().pipe(
tap(msg => {
// show a toast
console.log(msg);
const toast = toastCtrl.create({
message: msg["body"],
duration: 3000
});
toast.present();
})
).subscribe();
}
Я следую этому уроку. Независимая служба уведомлений с использованием Ionic, Node & FCM