无法在 React.js 中接收来自 Firebase 的消息

Posted

技术标签:

【中文标题】无法在 React.js 中接收来自 Firebase 的消息【英文标题】:Cant receive message from Firebase in React.js 【发布时间】:2018-05-11 07:04:33 【问题描述】:

我开发了一个带有通知推送的网络,例如 whatssap,我为此使用 firebase 云消息,我尝试使用令牌从 firebase 控制台发送通知,但我在控制台日志中没有得到任何东西,甚至没有错误

这是 de firebase-messaging-sw.js

importScripts('https://www.gstatic.com/firebasejs/4.3.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.3.0/firebase-messaging.js');
importScripts('https://www.gstatic.com/firebasejs/4.3.0/firebase.js');

firebase.initializeApp(config);

const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function(payload) 
    console.log('[firebase-messaging-sw.js] Received background message ', payload);
    // Customize notification here
    const notificationTitle = 'Background Message Title';
    const notificationOptions = 
        body: 'Background Message body.',
        icon: '/firebase-logo.png'
    ;

return self.registration.showNotification(notificationTitle,
    notificationOptions);
);

这是 index.html

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

    <script>
      firebase.initializeApp(config);
      const messaging = firebase.messaging();
      messaging.onMessage(function(payload) 
      console.log("Message received. ", payload);
      // ...
      );
    </script>

【问题讨论】:

【参考方案1】:

我认为消息传递在本地不起作用。您必须在 HTTPS 上托管。我有一个类似的问题。然后我将我的应用程序托管在 firebase 上,一切正常。

【讨论】:

哦,我需要在云服务器中部署这个网站,所以当我这样做时,它应该可以工作吗? 如果你使用 https。这就是为我解决的问题。

以上是关于无法在 React.js 中接收来自 Firebase 的消息的主要内容,如果未能解决你的问题,请参考以下文章

无法将数据从子功能组件传递到反应父组件(React.js)[重复]

如何修复 React.Children.only 期望在 react.js 中接收单个 React 元素子项?

如何使用formik react js在handlesubmit函数中接收选择值?

React js循环遍历从刀片接收的数组

React.js useState hook 导致过多的重新渲染并且无法更新我的状态

React.js & Flux - 在哪里注册 Websocket 事件(接收数据)的最佳位置