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

6
我将尝试使用云函数向我的React应用程序发送FCM。云函数正在执行,但客户端未收到通知。
以下是云函数代码:
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 文件做些什么吗?

非常感谢任何帮助。

2个回答

3

我的 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

对于新手来说,如果您在使用IT技术时遇到问题,特别是如果您从网上复制和粘贴内容,请确保检查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个小时刷新同一个该死的页面后,终于帮我解决了问题。++ - Sahil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接