Получить токен FCM для приложения iOS Ionic 4 Capacitor - PullRequest
0 голосов
/ 19 сентября 2019

Помогите мне в получении токенов регистрации FCM для устройств iOS для моего приложения Ionic 4.Я использую конденсатор, который предоставляет токены APNs.

Я попытался использовать плагин сообщества Capitor-fcm, который не работает - возвращает токен неопределенным, и я попытался использовать cordova-plugin-firebase и cordova-plugin-fcm-with-dependency, который пнул ошибки при попытке построить с конденсатором.

Моя последняя попытка использует gatchapi iid batchImport, найденный здесь:

https://developers.google.com/instance-id/reference/server

Я пытался использовать приведенный ниже код в облачных функциях Firebase, но получаю сообщение об ошибке "Неаутентифицирован или не авторизован "как ответ API.

export const swapToken = functions.firestore.document(
    '/push_tokens/{userId}'
).onCreate((snapshot: any, context: any) => {
    const token = snapshot.data().push_token;
    const uid = snapshot.data().userId;
    if(token){
      // tslint:disable-next-line: no-shadowed-variable
      const request = require("request");
      const options = { 
          method: 'POST',
          url: 'https://iid.googleapis.com/iid/v1:batchImport',
          headers: {
              Authorization: 'key=<mykey>',
          },
          body: 
            { 
              application: 'com.blank.blank',
              sandbox: false,
              apns_tokens: [ `${token}` ] 
            },
          json: true 
      };

      return request(options, function (error: any, response: any, body: any) {
        if (error) throw new Error(error);
        console.log('iid body:', body);
        return admin.firestore().collection('test_push').doc(`${uid}`).set({
            apns_token: body.results.apns_token,
            push_token: body.results.registration_token
        })
        .catch((err: any) => console.log(err))
      });
    }
});
...