Поддерживает ли Firebase Cloud Messaging услуги VOIP pushkit?

Кто-нибудь имеет представление о поддержке Firebase Cloud Messaging VOIP pushkit сервисов.

Если да, то может кто-нибудь, пожалуйста, предоставить руководство для того же.

То же самое, что реализовано в Skype/Hangout/WhatsApp или любых других приложениях на основе VOIP.

Заранее спасибо.

Ответ 1

В момент написания (FirebaseMessaging 1.1.0/Firebase 3.2.0) FCM использует обычные APN под iOS, поэтому поддержка PushKit-уведомлений отсутствует.

Ответ 2

Я получил PushKit + Firebase, работающий через node-apn. Просто установите его через npm в папку облачных функций. Вы можете получить жетоны из своего пожарного магазина или что-то в этом роде, но я думаю, что это само за себя...

Вот некоторый фиктивный код:

export const test = functions.https.onRequest((request, response) => {
        const config = {
            production: false, /* change this when in production */
            cert: 'yourCERT.pem',
            key: 'yourKey.pem', 
        };

        const apnProvider = new apn.Provider(config);
        const notification = new apn.Notification();

        const recepients: string[] = [];
        recepients.push(apn.token('SOME PUSHKIT TOKEN'));
        recepients.push(apn.token('ANOTHER PUSHKIT TOKEN'));

        notification.topic = 'com.your.app.voip'; // you have to add the .voip here!!
        notification.payload = {
            // some payload
        };

        return apnProvider.send(notification, recepients).then((reponse) => {
            console.log(reponse);
            return response.send("finished!");
        });
    });

Ссылка на узел-apn

Ответ 3

Это сработало для меня! Не забудьте добавить файл Authkey_xxxx.p8 в свой каталог и не забудьте добавить .voip к вашему идентификатору пакета.

export const test = functions.https.onRequest((request, response) => {
    const config = {
        production: false, /* change this when in production */
        token: {
        key: "./AuthKey_xxxx.p8",
        keyId: "xxxx",
        teamId: "yyyy"
      } 
    };
    const apnProvider = new apn.Provider(config);
    const notification = new apn.Notification();

    const recepients: string[] = [];
    recepients.push(apn.token('SOME PUSHKIT TOKEN'));
    recepients.push(apn.token('ANOTHER PUSHKIT TOKEN'));

    notification.topic = 'com.your.app.voip'; // you have to add the .voip here!!
    notification.payload = {
        // some payload
    };

    return apnProvider.send(notification, recepients).then((reponse) => {
        console.log(reponse);
        return response.send("finished!");
    });
});