javascript - 用于推送通知的Firebase云功能不起作用

标签 javascript firebase flutter dart google-cloud-functions

在我的flutter应用程序中,我已将每个设备 token 保存到firebase数据库中的集合中,并且编写了用于firebase云功能的代码,因此它会向订阅主题并让其 token 位于 token 中的每个用户发送一条消息(通知)集合,但是当我向订阅的主题添加内容时,它不会发送任何内容,这是在索引文件中使用javascrpit编写的云函数代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().functions);

var newData;

exports.myTrigger = functions.firestore.document('messages/{messageId}').onCreate(async (snapshot, context) => {
    //

    if (snapshot.empty) {
        console.log('No Devices');
        return;
    }

    newData = snapshot.data();

    const deviceIdTokens = await admin
        .firestore()
        .collection('messages')
        .get();

    var tokens = [];

    for (var tokened of deviceIdTokens.docs) {
        tokens.push(tokened.data().token);
    }
    var payload = {
        notification: {
            title: 'Push Title',
            body: 'Push Body',
            sound: 'default',
        },
        data: {
            message: newData.message,
            click_action: 'FLUTTER_NOTIFICATION_CLICK',
        },
    };

    try {
        const response = await admin.messaging().sendToDevice(tokens, payload);
        console.log('Notification sent successfully');
    } catch (err) {
        console.log(err);
    }
});


这是我的数据库结构
enter image description here

和 token 收集:
enter image description here

我究竟做错了什么?

最佳答案

尝试他的代替:

我应该写:
'''

const deviceIdTokens = await admin
        .firestore()
        .collection('tokens')
        .get()

'''

也用于通过数据库发送消息,我应该在字段中写上“消息”,因为我将“数据”的键命名为“消息” :)

关于javascript - 用于推送通知的Firebase云功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62019409/

相关文章:

javascript - 在 flash cc createjs 中集成 html : not creating createjs text . 可以集成吗?

javascript - 如何将javascript移动到drupal中的底部页脚

javascript - 如何使用jquery获取UL的if子属性?

android - 在 RecyclerView 中显示 Firebase 数据库的最后一个子级、第一个子级

Flutter Textfield 的高度

Flutter 布局障碍

javascript - ajax 加载内容上的 jquery 事件丢失

swift - 使用 double 对 UITableView 进行排序

ios - 在具有多个 Android 应用程序和一个 iOS 应用程序的 Firebase 中注册新的 bundle ID 时出现错误

flutter - 使用 MultipartFile GetConnect 发送 FormData 时需要字段 "field"