尝试使用firebase模块在node.js中获取FCM消息时,发生以下错误“TypeError:firebase.messaging不是函数”。
var firebase = require("firebase");
firebase.initializeApp({
apiKey: "xxxxxxx",
authDomain: "xxxxxxx",
databaseURL: "xxxxxxx",
projectId: "xxxxxxx",
storageBucket: "xxxxxxx",
messagingSenderId: "xxxxxxx"
});
const messaging = firebase.messaging();
如何纠正此错误以及如何使用firebase模块来提取消息?
答案 0 :(得分:2)
Firebase的文档未明确说明基于当前环境可用的功能有所不同。 firebase.messaging
不可用于Node.js客户端,但可从firebase-admin
包中获得。但是,这个软件包单独为firebase.messaging
提供了一组不同的功能。
您可以在Firebase参考文档中根据您的环境查看可用的内容。特别针对您的情况Node.js (Client)部分。
答案 1 :(得分:1)
您尝试使用的条件仅适用于浏览器:
您必须要求firebase-messaging
,请查看此完整示例,它将指导您https://github.com/firebase/quickstart-js/tree/master/messaging
对于nodeJS实现,您必须使用admin.messaging
https://firebase.google.com/docs/reference/admin/node/admin.messaging
// Get the Messaging service for the default app
var defaultMessaging = admin.messaging();
答案 2 :(得分:1)
您还必须导入“ @ firebase / messaging”才能使其正常工作。
从“ firebase / app”导入*作为firebase; 导入'@ firebase / messaging';
答案 3 :(得分:0)
react-native-firebase version 5.x.x and 6.x.x
import firebase from '@react-native-firebase/app'
import '@react-native-firebase/messaging'
例如get token
const fcmToken = await firebase.messaging().getToken();
console.log(fcmToken)
答案 4 :(得分:0)
在我的情况下,我仅以
的形式导入Firebaseimport '@firebase/app'
代替
import * as firebase from '@firebase/app'
格式化后,我能够从firebase.firebase.messaging()访问消息