2016-11-17 6 views
0

TypeErrorを受け取り続けると、その理由がわかりません。私はFirebaseを(npm install firebase --save)を使ってインストールしました。私のコードは以下の通りです:ノードとFirebaseクラウドメッセージング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"); 
      }); 
    }); 

これは私が受け取っているエラーです。 InitializeAppは正常に動作しているようですが、メッセージングは​​機能していません。 (npm -v firebase)は3.10を吐き出しますが、npmのWebページには最新の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

"。Firebaseクラウドメッセージングは​​、サーバ側Firebase NPMモジュールに含まれていない代わりに、あなたはFirebaseクラウドメッセージングの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プロセスではなく、ユーザーのブラウザで実行する必要があります。 –

関連する問題