fcm getToken заходит в бесконечный цикл - PullRequest
0 голосов
/ 16 октября 2018

Я создаю приложение 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

...