Firebase onMessage()未收到消息

时间:2019-09-20 16:54:37

标签: firebase google-cloud-firestore firebase-cloud-messaging service-worker

我正在开发Firebase实时消息传递应用程序。我已经成功地将浏览器/设备令牌上传到Firestore的集合中,但是当我尝试测试应用程序中是否收到消息时,我什么也没收到。

这是我代码的某些部分。

  <!-- The core Firebase JS SDK is always required and must be listed first -->
  <script src="https://www.gstatic.com/firebasejs/6.6.2/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.2/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.2/firebase-firestore.js"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.2/firebase-messaging.js"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.2/firebase-functions.js"></script>


  <script>
    var firebaseConfig = {
        ---- PRIVATE ----
    };
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
  </script>

  <script src="firebase-messaging-sw.js?v=2156"></script>

已经尝试为firebase-messaging-sw(https://stackoverflow.com/a/50078103/3881610)编写必要的代码,但我收到一条错误消息:

  

未捕获的FirebaseError:消息传递:此方法在服务工作者上下文中可用。 (消息传递/仅可用insw)。

我也有在页面中接收消息的代码:

var messaging = firebase.messaging();
messaging.onMessage((payload) => {
  console.log('Message received. ', payload);
});

还要确保使用Postman将消息发送到设备令牌,并且工作正常。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

起初,firebase-messaging-sw.js是服务工作者的JavaScript文件。

请参见Firebase messaging importScripts is not defined

您可以尝试样品吗?

请参阅: