Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 写入数据库时未触发Firebase函数_Javascript_Node.js_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript 写入数据库时未触发Firebase函数

Javascript 写入数据库时未触发Firebase函数,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,我的数据库结构如下:集合(“消息”)。文档(“消息”) 但实际上,我希望在添加文档时监视数据库主集合中的任何更改。我添加了消息文档,因为我认为可能没有调用函数,因为我的文档是自动生成的。然而,问题依然存在 就背景而言,我是一名iOS开发人员,所以我可能在这里做错了什么: const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp();

我的数据库结构如下:集合(“消息”)。文档(“消息”)

但实际上,我希望在添加文档时监视数据库主集合中的任何更改。我添加了消息文档,因为我认为可能没有调用函数,因为我的文档是自动生成的。然而,问题依然存在

就背景而言,我是一名iOS开发人员,所以我可能在这里做错了什么:

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

admin.initializeApp();

exports.sendPushNotifications = functions.database.ref('/Messages/{message}').onCreate((snapshot,context) => {

    console.log(snapshot);
    console.log(context);

    var topic = "/topics/sentMessages";

    var payload = {
        data: {
            message : 'You recieved a new message!'
        }
    }

    return  admin.messaging().sendToTopic(topic,payload).then((response) => {

        return response;
    })
})

对于其他背景:应用程序在使用控制台时接收推送通知,无论是直接发送到测试设备还是使用主题。这个问题严格来说是在给firebase Firestore写信时出现的…

当您说“收集(“消息”)。文档(“消息”)时,向我暗示您正在使用Firestore作为数据库。然而,您的功能是针对实时数据库进行更改,这是一件完全不同的事情<代码>函数。数据库为实时数据库构建函数<代码>函数。firestore为firestore构建函数。您需要阅读以了解如何编写它们。

如果您有新问题,请单独发布。堆栈溢出不利于解决正在进行的一系列问题“但仍然没有触发……请不要重写这样的问题。你刚刚否定了我的答案。旧的Q和A可能对以后的其他人有所帮助。最好是发布新的问题和新的细节。对不起,我不太擅长在这里提问。编辑问题有助于修正打字错误、重新格式化和澄清问题以回应评论,但不利于重复一系列不同的问题。