Firebase 云消息/通知未收到。 JS

Posted

技术标签:

【中文标题】Firebase 云消息/通知未收到。 JS【英文标题】:Firebase cloud message/notifications are not receiving. JS 【发布时间】:2018-03-13 11:58:05 【问题描述】:

我正在尝试使用云功能将 FCM 发送到我的 React 应用程序。 云功能正在执行,但客户端未收到通知。

这里是云功能代码。

exports.sendPush = functions.database.ref('/settings2').onWrite(event => 
    let projectStateChanged = false;
    let projectCreated = false;
    let projectData = event.data.val();
    if (!event.data.previous.exists()) 
        projectCreated = true;
    
    if (!projectCreated && event.data.changed()) 
        projectStateChanged = true;
    
    let msg = 'A project state was changed';
        if (projectCreated) 
            msg = `The following new project was added to the project: $projectData.title`;
        
    tokens.push("fIGxxxxGtDGxxxx DEVICE Token");
    let payload = 
        notification: 
            title: 'Firebase Notification',
            body: 'This Is Message',
            sound: 'default',
            badge: '1'
        
    ;
    return admin.messaging().sendToDevice(tokens, payload);
);

这里是云函数的日志

这是我客户端的代码:

messaging.onMessage(function(payload) 
   console.log("Message received. ", payload);
      // ...
);

没有任何错误,但控制台中没有任何内容。我必须对 Service Worker 文件做些什么吗?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我的 firebase-messaging-sw.js 文件存在问题。我已经通过以下代码解决了这个问题。

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

var config = 
    apiKey: "AIzaSyDtg4aQMQW67Jla1nUzrTTSEhVqpUeqKXI",
    authDomain: "payxxxxxxx.firebaseapp.com",
    databaseURL: "https://pxyxxxxx.firebaseio.com",
    projectId: "pxxoll-pxxxs-fxxx",
    storageBucket: "pxxx-pxxx-fxxxx1.apxxxot.com",
    messagingSenderId: "2xxxx5xxx"
  ;
  firebase.initializeApp(config);


const messaging = firebase.messaging();

【讨论】:

【参考方案2】:

对于可能遇到此帖子并遇到此问题的任何新人,特别是如果您从在线复制和粘贴某些内容,请确保检查 importScripts 版本并确保其版本与您的 package.json 文件中的版本相同。

示例 目前这个包版本是8.3.1

所以更新

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

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

【讨论】:

这是一个合法的解决方案,在刷新同一个该死的页面 4 小时后帮助解决了我的问题。 ++

以上是关于Firebase 云消息/通知未收到。 JS的主要内容,如果未能解决你的问题,请参考以下文章

iOS 未收到来自 Firebase 云消息传递的通知

Web 应用程序中未收到 Firebase 云消息传递通知

设备未收到Firebase云消息传递通知

使用.p8文件后未收到iOS Firebase云消息传递通知

Flutter - Firebase 云消息传递,iOS 上未收到数据消息

Firebase 远程通知未收到?