Node.js Firebase:Firebase.messaging()不是函数

Node.js Firebase:Firebase.messaging()不是函数,node.js,firebase,firebase-cloud-messaging,Node.js,Firebase,Firebase Cloud Messaging,我正在尝试从FCM设置NodeJS客户端Web应用程序。我在服务器端安装了firebase admin。设置客户端以访问令牌时,我收到一个TypeError:firebase.messaging不是一个函数错误。从其他解决方案来看,这似乎是不同FCM版本之间的兼容性错误,但仍然可以修复它。下面是我正在使用的html文件 <html> <head> <script src="https://www.gstatic.com/firebasejs/3.1.0/f

我正在尝试从
FCM
设置
NodeJS客户端Web应用程序。我在服务器端安装了
firebase admin
。设置客户端以访问令牌时,我收到一个
TypeError:firebase.messaging不是一个函数
错误。从其他解决方案来看,这似乎是不同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>

看起来您没有遵循中的基本集成步骤。消息传递有一个包含:

<script src="https://www.gstatic.com/firebasejs/4.2.0/firebase-messaging.js"></script>


还请注意,4.2.0中最新版本的web客户端。您使用的是旧版本。

您需要在
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>


您还必须导入“@firebase/messaging”才能使其工作。

firebase是否已加载?是的,已加载。我得到一个带有
console.log(firebase)的对象。但是它没有
messaging()
功能。我将在问题中添加这一点。我有,我发布的html文件来自文档。就像我说的,这可能是版本冲突,我会试试这个然后回来。谢谢。你指的是什么文件?我展示的是经典的。Firebase官方文档不显示旧版本的内容。还要注意,我已经包含了“Firebase messaging.js”而不仅仅是“Firebase.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>