0

Ich verwende FCM in einem Cordova-Projekt. Ich habe ein Projekt in der FCM-Webkonsole erstellt und die google-services.json-Datei mit dem Paketnamen meines Projekts com.mycompany.myapp generiert. Ich musste diese Datei an zwei Stellen ablegen, um die Kompilierung erfolgreich abzuschließen: den Stammordner des Android-Projekts und den Unterordner "CordovaLib". Das Problem besteht darin, dass jede dieser beiden Kopien einen anderen Paketnamen angeben sollte: Die Kopie des Projektstammordners sollte com.mycompany.myapp angeben und die Kopie in CordovaLib sollte com.apache.cordova angeben. Andernfalls wird das Projekt nicht kompiliert.Verwenden von FCM in Cordova

Wenn ich den Paketnamen in der Datei google-services.json manuell ändern, ist die Kompilierung erfolgreich, aber keine Benachrichtigung wird übermittelt.

Meine Frage ist: Wie kann ich eine google-services.json Datei erstellen, die mit Cordova funktioniert? Welchen Paketnamen sollte ich in der FCM-Konsole angeben (com.mycompany.myapp oder com.mycompany.myapp)? Kann ich eine Datei erzeugen, die für viele Pakete funktioniert?

[EDIT]

Wenn Sie wissen müssen, das Cordova Projekt aus einer Sencha ExtJS6 Anwendung erzeugt wird, und ich verwende "cordova-plugin-fcm". In platforms\android Ordner gibt es einen Ordner namens CordovaLib, der build.gradle und src enthält. Das Projekt wird nicht kompiliert, wenn ich google-services.json nicht an diesen Ort kopiere. Die Klassen in diesem Ordner haben den Paketnamen com.apache.cordova.

+0

welches Plugin benutzen Sie? Sie sollten keine google-services.json für die 'com.apache.cordova' erstellen müssen, es ist ein Bibliotheksprojekt – jcesarmobile

+0

Die README des cordova-plugin-fcm zeigt an, dass Sie nur die google- services.json-Datei zum Stamm Ihres Projekts. Funktioniert das nicht? –

Antwort

3

Wie die Kommentare zu der Frage vorgeschlagen, war die Lösung, google-services.json in die Wurzel des Projekts nur zu setzen. Ich werde erklären, warum ich dieses Problem hatte, damit andere nicht den gleichen Fehler begehen.

Wenn Sie Ihr Projekt und Anwendung in Firebase Console erstellen, erhalten Sie ein Fenster mit den folgenden Anweisungen:

hinzufügen Firebase zu dem Android-App

Die Google-Services-Plugin für Gradle lädt die Google- services.json-Datei, die Sie gerade heruntergeladen haben. Ändern Sie Ihre build.gradle-Dateien, um das Plugin zu verwenden.

1 - Projektebene build.gradle (< Projekt \ > /build.gradle):

buildscript {

Abhängigkeiten {

// Add this line 

classpath 'com.google.gms:google-services:3.0.0' 

}

}

2 - App-Level build.gradle (<Projekt>/< app-Modul > /build.gradle):

...

// zum Ende der Datei hinzufügen

Plugin anwenden: ‚com.google.gms.Google-Dienste

Also, ich hinzugefügt, um die apply plugin ... Linie in der build.gradle Datei im Unterordner CordovaLib (was falsch ist, es in der gleichen build.gradle Datei im Stammordner des Projektes gehen soll), und es würde nicht kompilieren Unles Ich füge google-services.json in diesem Ordner hinzu. Die Fehlerquelle bestand also darin, den obigen Anweisungen zu folgen, ohne darüber nachzudenken.

Fazit: In Android-Anwendungen von Cordova erzeugt, setzen Sie beide Änderungen in der Datei build.gradle an der Wurzel des Projekts, und setzen Sie google-services.json in den Stamm nur.