2016-11-17 60 views
0

繼續收到TypeError,我無法弄清楚原因。我使用(npm install firebase --save)安裝了Firebase。這是我的代碼:節點和Firebase雲消息傳遞類型錯誤

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

這是我收到的錯誤。 InitializeApp似乎工作正常,但消息不起作用。 (npm -v firebase)吐出3.10,但npm網頁上說最新的是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) 

任何幫助,非常感謝。

回答

2

看完這個: https://www.npmjs.com/package/firebase

「沒有包含服務器端火力地堡NPM模塊火力地堡雲消息相反,你可以使用火力地堡雲端通訊REST API」

因此,您應該對其他消息進行其他調用,但是您不能在代碼中使用消息傳遞函數。

見REST API文檔: https://firebase.google.com/docs/cloud-messaging/send-message#http_post_request

+0

我不是試圖發送一個消息。設置Firebase的第一步是使用此視頻中的過程向用戶請求通知許可(https://firebase.google.com/docs/cloud-messaging/js/client)。我需要先獲得許可,然後我可以獲取用戶令牌以便稍後發送消息。 –

+0

但是請求權限的代碼必須在用戶的瀏覽器中運行,而不是在服務器端的node.js進程中運行。 –

相關問題