Stephen Kuehl
Stephen Kuehl

Reputation: 105

Node and Firebase Cloud Messaging TypeError

Keep receiving a TypeError and I cant figure out why. I installed Firebase by using (npm install firebase --save). Here is my code:

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

This is the error I am receiving. InitializeApp seems to be working fine but messaging is not working. (npm -v firebase) spits out 3.10 but the npm webpage says the latest is 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)

Any help is greatly appreciated.

Upvotes: 0

Views: 782

Answers (1)

Rayee Roded
Rayee Roded

Reputation: 2630

After reading this: https://www.npmjs.com/package/firebase

"Firebase Cloud Messaging is not included in the server side Firebase npm module. Instead, you can use the Firebase Cloud Messaging Rest API."

So you should make rest calls for messaging, but you cannot use the messaging function in the code like you tried.

See the REST API documentation: https://firebase.google.com/docs/cloud-messaging/send-message#http_post_request

Upvotes: 3

Related Questions