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)
ご協力いただきまして誠にありがとうございます。
私がメッセージを送信しようと波平。 firebaseを設定するための私の最初のステップは、このビデオ(https://firebase.google.com/docs/cloud-messaging/js/client)のプロセスを使用して、ユーザからの通知の許可を要求することです。私は最初に許可を得る必要があります、そして、私は後でメッセージを送るためにユーザートークンをつかむことができます。 –
しかし、アクセス権を要求するコードは、サーバー側のnode.jsプロセスではなく、ユーザーのブラウザで実行する必要があります。 –