[英]FirebaseError: Firebase: firebase.messaging() takes either no argument or a Firebase App instance. (app/invalid-app-argument)
[英]Firebase: firebase.messaging() is not a function
我正在尝试从FCM
设置NodeJS Client Web App
。 我在服务器端设置了firebase-admin
。 在设置客户端以访问令牌时,我收到TypeError: firebase.messaging is not a function
错误。 从其他解决方案来看,不同 FCM 版本之间似乎存在兼容性错误,但仍然可以修复它。 下面是我正在使用的 html 文件
<html>
<head>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script>
</head>
<body>
<script>
console.log(firebase);
const messaging = firebase.messaging();
messaging.onTokenRefresh(function () {
messaging.getToken()
.then(function (refreshedToken) {
console.log('Token refreshed.');
console.log(refreshedToken);
// // Indicate that the new Instance ID token has not yet been sent to the
// // app server.
// setTokenSentToServer(false);
// // Send Instance ID token to app server.
// sendTokenToServer(refreshedToken);
// // [START_EXCLUDE]
// // Display new Instance ID token and clear UI of all previous messages.
// resetUI();
// // [END_EXCLUDE]
})
.catch(function (err) {
console.log('Unable to retrieve refreshed token ', err);
// showToken('Unable to retrieve refreshed token ', err);
});
});
</script>
</body>
</html>
如何在客户端正确设置 firebase? 编辑: console.log(firebase)
给出:
SDK_VERSION: "3.1.0", initializeApp: ƒ, app: ƒ, Promise: ƒ, …}
INTERNAL:{registerService: ƒ, createFirebaseNamespace: ƒ, extendNamespace: ƒ, createSubscribe: ƒ, ErrorFactory: ƒ, …}
Promise:ƒ Promise()
SDK_VERSION : "3.1.0"
User:ƒ (a,b,c)
app:ƒ a(a)
apps:(...)
auth:ƒ (c)
database:ƒ (c)
initializeApp:ƒ (a,c)
storage:ƒ (c)
get apps:ƒ ()
__proto__
:
Object
看起来您没有遵循文档中的基本集成步骤。 有一个用于消息传递的包含:
<script src="https://www.gstatic.com/firebasejs/4.2.0/firebase-messaging.js"></script>
另请注意,Web 客户端的最新版本为 4.2.0。 您使用的是旧版本。
您需要在html
文件中包含firebase-app.js
和firebase-messaging.js
:
<script src="https://www.gstatic.com/firebasejs/7.20.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.20.0/firebase-messaging.js"></script>
尝试替换import 'firebase/messaging';
使用import 'firebase/compat/messaging';
它对我有用
我正在尝试从FCM
设置NodeJS Client Web App
。 我在服务器端设置了firebase-admin
。 在设置客户端以访问令牌时,我收到TypeError: firebase.messaging is not a function
error。 从其他解决方案来看,似乎是不同 FCM 版本之间的兼容性错误,但仍然可以修复它。 下面是我正在使用的 html 文件
<html>
<head>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script>
</head>
<body>
<script>
console.log(firebase);
const messaging = firebase.messaging();
messaging.onTokenRefresh(function () {
messaging.getToken()
.then(function (refreshedToken) {
console.log('Token refreshed.');
console.log(refreshedToken);
// // Indicate that the new Instance ID token has not yet been sent to the
// // app server.
// setTokenSentToServer(false);
// // Send Instance ID token to app server.
// sendTokenToServer(refreshedToken);
// // [START_EXCLUDE]
// // Display new Instance ID token and clear UI of all previous messages.
// resetUI();
// // [END_EXCLUDE]
})
.catch(function (err) {
console.log('Unable to retrieve refreshed token ', err);
// showToken('Unable to retrieve refreshed token ', err);
});
});
</script>
</body>
</html>
如何在客户端正确设置firebase? 编辑: console.log(firebase)
给出:
SDK_VERSION: "3.1.0", initializeApp: ƒ, app: ƒ, Promise: ƒ, …}
INTERNAL:{registerService: ƒ, createFirebaseNamespace: ƒ, extendNamespace: ƒ, createSubscribe: ƒ, ErrorFactory: ƒ, …}
Promise:ƒ Promise()
SDK_VERSION : "3.1.0"
User:ƒ (a,b,c)
app:ƒ a(a)
apps:(...)
auth:ƒ (c)
database:ƒ (c)
initializeApp:ƒ (a,c)
storage:ƒ (c)
get apps:ƒ ()
__proto__
:
Object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.