Erhalten Sie einen TypeError und ich kann nicht herausfinden, warum. Ich habe Firebase mit (npm install firebase --save
) installiert. Hier ist mein Code:Knoten und Firebase Cloud Messaging TypeError
var firebase = require("firebase"); // Firebase
var express = require('express'); // Express instaniated a different way for serving static webpages
var app = express(); // Express App include
// Set port
app.listen(8085);
// Initialize Firebase
var config = {
apiKey: "AIza...............",
authDomain: ".....firebaseapp.com",
databaseURL: "...............",
storageBucket: "..........appspot.com",
messagingSenderId: "..............."
};
firebase.initializeApp(config);
// Create the URL for using Firebase
app.get('/fcmtest', function (req, res) {
const messaging = firebase.messaging();
messaging.requestPermission()
.then(function() {
console.log("Have Permission")
})
.catch(function (err) {
console.log("Do Not Have Permission");
});
});
Dies ist der Fehler, den ich erhalte. InitializeApp scheint zu funktionieren, aber Messaging funktioniert nicht. (npm -v firebase) spuckt 3.10 aus, aber die npm Webseite sagt das neueste ist 3.6.1.
TypeError: firebase.messaging is not a function
at /usr/gserv/services/app.js:226:32
at Layer.handle [as handle_request] (/usr/gserv/services/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/gserv/services/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/usr/gserv/services/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/usr/gserv/services/node_modules/express/lib/router/layer.js:95:5)
at /usr/gserv/services/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/usr/gserv/services/node_modules/express/lib/router/index.js:330:12)
at next (/usr/gserv/services/node_modules/express/lib/router/index.js:271:10)
at /usr/gserv/services/node_modules/connect-busboy/index.js:14:14
at Layer.handle [as handle_request] (/usr/gserv/services/node_modules/express/lib/router/layer.js:95:5)
Jede Hilfe wird sehr geschätzt.
Ich war nicht versucht, eine Nachricht zu senden. Mein erster Schritt beim Einrichten von Firebase besteht darin, eine Benachrichtigungsberechtigung vom Benutzer mithilfe des Verfahrens in diesem Video anzufordern (https://firebase.google.com/docs/cloud-messaging/js/client). Ich brauche zuerst die Erlaubnis, und dann kann ich ein Benutzer-Token für das Senden von Nachrichten später greifen. –
Der Code zum Anfordern der Berechtigung muss jedoch im Browser des Benutzers und nicht im serverseitigen Prozess node.js ausgeführt werden. –