web-dev-qa-db-fra.com

Firebase Cloud Messaging prend-il en charge les services VOIP pushkit?

Quelqu'un at-il une idée sur Firebase Cloud Messaging support VOIP pushkit services.

Si oui, quelqu'un peut-il fournir des directives à ce sujet?.

Même chose qui est implémentée dans Skype/Hangout/WhatsApp ou toute autre application basée sur VOIP.

Merci d'avance.

18
Hasya

Au moment de la rédaction (FirebaseMessaging 1.1.0/Firebase 3.2.0), FCM utilise des APN normaux sous iOS, il n'y a donc pas de prise en charge des notifications PushKit.

14
Ian Barber

J'ai fait fonctionner PushKit + Firebase via node-apn. Installez-le simplement via npm dans votre dossier de fonctions cloud. Vous pourriez obtenir les jetons de votre magasin de pompiers ou quelque chose comme ça, mais je pense que cela va de soi ...

Voici un code factice:

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!");
        });
    });

Lien vers node-apn

0
p.wiesinger

Cela a fonctionné pour moi! N'oubliez pas d'ajouter le fichier Authkey_xxxx.p8 dans votre répertoire et n'oubliez pas d'ajouter .voip à votre ID de bundle dans la rubrique de notification.

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!");
    });
});
0
marouan azizi