Wenn ich das offizielle Video-Tutorial für Firebase Cloud Messaging durcharbeite, kann ich kein Messaging-Token abrufen, ohne die Anwendung zu hosten.
Hier ist meine app.js
Datei:
Ich habe eine firebase-messaging-sw.js
Datei in meinem Wurzelverzeichnis.
Wenn ich die Datei index.html
direkt in meinem Browser lade und den Dialog akzeptiere, erhalte ich einen undefinierten Wert für das Token. Die vollständige Konsolenausgabe lautet:
Wenn ich die Anwendung hosten lasse, indem ich die firebase.json
-Datei zum Lesen lese:
Und dann firebase serve -p 8081
ausführen, http://localhost:8081
öffnen und den Dialog akzeptieren, ich erhalte ein Token. Die volle Ausgabe ist:
Ist das eine dokumentierte Einschränkung? Gibt es eine Möglichkeit, ein Token zu erhalten, ohne die Anwendung zu hosten?
FCM funktioniert nur auf Seiten, die vom https-Protokoll bedient werden
wie im Dokument
Das FCM SDK wird nur in Seiten unterstützt, die über HTTPS bereitgestellt werden. Das ist fällig zu seiner Verwendung von Service-Mitarbeitern, die nur auf HTTPS verfügbar sind Websites. Brauchen Sie einen Anbieter? Firebase Hosting ist eine einfache Möglichkeit, um kostenlos zu erhalten HTTPS Hosting auf Ihrer eigenen Domain.
und wenn Sie sich fragen, warum localhost arbeiten, weil Seiten in localhost so funktionieren, wie sie von https
bedient werdenso Gibt es eine Möglichkeit, ein Token zu empfangen, ohne die Anwendung zu hosten?
Die Antwort lautet Nein , dass Ihre Seite vom https-Protokoll bedient werden sollte
Ich würde nicht sagen, dass dies die exakte Alternative ist, aber eine alternative Lösung für das Problem, Sie können die ngrok verwenden, die zur Verfügung stellt Sie mit dem Https-Zugang für alternative Darstellung der localhost
.
Verwenden Sie also nach der Installation die URL, die auf dem Terminal von ngrok im FCM ausgegeben wird.
Hinweis : ngrok gibt sowohl http
als auch https
URLs aus. Verwenden Sie daher nur Https
. Sie werden weiterhin Ihrem lokalen Server zugeordnet.
Tags und Links javascript firebase firebase-cloud-messaging