Помогите мне в получении токенов регистрации 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))
});
}
});