Firebase les notifications Push avec PhoneGap Build à l'aide de cordova-plugin-fcm
J'ai besoin pour mettre en œuvre les notifications push dans une application PhoneGap Build que je suis en développement.
Je n'ai pas trouvé beaucoup de documentation sur l'utilisation du nouveau service de Google, Firebase Messagerie en Nuage (FCM), mais puisqu'il est censé être ce que nous avons à utiliser maintenant, j'ai cherché une API qui pourrait me rendre la vie plus facile.
J'ai trouvé: https://www.npmjs.com/package/cordova-plugin-firebase
J'ai donc ajouté à mon config.xml:
<plugin name="cordova-plugin-fcm" source="npm" />
Et de mettre le google-services.json que j'ai créé à partir de https://console.firebase.google.com/ dans la racine du dossier, je zip à télécharger sur le Phonegap Build.
Mais j'obtiens l'erreur suivante:
Execution failed for task ':processReleaseGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/project/src/release/google-services.json
/project/google-services.json
J'ai créé le "projet" dans le dossier racine et de mettre le fichier mais cela ne fonctionne pas non plus.
Actuellement mon dossier app ressemble:
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json
Si quelqu'un sait où je dois mettre ce fichier ou de toute autre manière de mettre en œuvre ce même en utilisant d'autres API, je voudrais vraiment l'apprécier.
Je n'ai jamais utilisé Phonegap CLI, j'ai toujours été à l'aide de Phonegap Build.
OriginalL'auteur Jorge Lizaso | 2016-09-28
Vous devez vous connecter pour publier un commentaire.
Les fichiers ont besoin d'être à côté de la
www
dossier, le problème est que Phonegap Build vous permet de télécharger le contenu du dit dossier, de sorte que vous ne pouvez pas télécharger les fichiers.Heureusement il y a quelque chose que vous pouvez faire; Construire installe les plugins directement à partir de la ngp, et les plugins peuvent travailler pensais que l'ensemble du projet, de manière à ce que vous avez besoin est un plugin qui permet de copier les fichiers [
google-services.json
,GoogleService-Info.plist
] pour vous.La plupart du travail a déjà été fait: cordova-plugin-fcm-config.
Il n'était pas construit pour cet usage mais fonctionne à merveille.
Il y a une complexité supplémentaire de bien; car vous ne pouvez pas télécharger les plugins (vous pouvez uniquement ajouter une référence dans votre
config.xml
), et ce plugin a besoin de votre propre application des fichiers de configuration, vous aurez à:Où voulez-vous télécharger? Qui peut être difficile. L'infrastructure est construite autour de l'idée que les plugins sont à des fins générales, et peut être configuré pour chaque projet, xml, donc mnp a du sens. Mais dans ce cas, votre plugin contiennent des données spécifiques à votre projet, si le téléchargement de la ngp ne pollue l'espace de noms à mon avis.
Je ne sais pas vous, mais j'ai un compte payant, donc j'ai publier le plugin dans mon propre dépôt et de présenter, à titre privé plugin. C'est ce que je recommande.
Pour info, vous pouvez également cloner le projet et l'héberger sur un dépôt bitbucket pour gratuit. Ensuite, utilisez <pluginname="cordova-plugin-fcm-config" spec="username:[email protected]/username/...> dans ton fichier de config
Merci pour cette réponse. Deux suivis: 1) Pourquoi ne pas cordova-plugin-fcm suffit d'inclure la fonctionnalité de copie? 2) Est-il un moyen de résoudre le fichier de configuration question de la même manière (la copie à partir de l'intérieur du répertoire " www " en quelque sorte)?
Merci @Guy, c'est vraiment une bonne affaire. Peut-être même une valeur à part entière de la réponse?
OriginalL'auteur Jaime Gómez
Cordova introduit la
resource-file
tag il y a quelques temps et il fonctionne aussi dans Phonegap Build.Vous pouvez utiliser à la place d'un fork du plugin pour copier le
google-services.json
etGoogleService-Info.plist
fichiersMettez le à la racine de votre projet et l'utilisation de la
resource-file
dans la balise config.xml comme ceci:Si vous utilisez cordova-android 7 ou plus récent:
les anciennes versions
iOS
Vous pouvez également le mettre à l'intérieur
www
dossier, dans ce cas, dans mes exemples ajouterwww/
avant le nom de fichier dans lasrc
champ.https://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file
OriginalL'auteur jcesarmobile