Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
仅为具有Firebase云功能的新项目添加了子项_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

仅为具有Firebase云功能的新项目添加了子项

仅为具有Firebase云功能的新项目添加了子项,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,下面我有一段代码可以使用(没有语法或任何其他错误),除了此代码的输出显示/server/name下的所有结果: i、 e: 以下是functions/index.js中的代码: exports.sendFollowerNotification = functions.database.ref('/server/name').onWrite(event => { admin.database().ref("/server/name").limitToLast(1).on('child_

下面我有一段代码可以使用(没有语法或任何其他错误),除了此代码的输出显示
/server/name
下的所有结果:

i、 e:

以下是functions/index.js中的代码:

exports.sendFollowerNotification = functions.database.ref('/server/name').onWrite(event => {


 admin.database().ref("/server/name").limitToLast(1).on('child_added', function(snapshot) {

 console.log('We have a new event:', snapshot.val());


   });
这里是数据库:

exports.sendFollowerNotification = functions.database.ref('/server/name').onWrite(event => {


 admin.database().ref("/server/name").limitToLast(1).on('child_added', function(snapshot) {

 console.log('We have a new event:', snapshot.val());


   });

更新2: 日志中的输出:

更新3:


当前,触发器在路径中的位置高于您所需的位置

相反,如果您计划收听多个事件列表,而这只是众多事件列表中的一个,请使用通配符:

exports.sendFollowerNotification = functions.database.ref('/server/name/{num}/{notification}').onWrite(event => {
    ...
})

您可以选择更适合您的特定代码的通配符名称。

当前,触发器在路径中的附加位置高于您想要的位置

相反,如果您计划收听多个事件列表,而这只是众多事件列表中的一个,请使用通配符:

exports.sendFollowerNotification = functions.database.ref('/server/name/{num}/{notification}').onWrite(event => {
    ...
})


您可以选择更适合特定代码的通配符名称。

函数的预期行为是什么?你想实现什么?@JenPerson发送FCM(firbease云消息),我看到DBAh中添加了新事件。我试图理解函数中侦听器的用途。为什么不使用event.data.val()获取新事件的数据?@JenPerson
event.data.val()
也会返回所有数据。我不知道如何修改
functions.database.ref('/server/name').onWrite
以返回新元素onlyok,所以您不想返回“1”的值,而是返回其中一个测试字符串的值?就像“测试”或“酷”?如果是这样,我有了解决方案函数的预期行为是什么?你想实现什么?@JenPerson发送FCM(firbease云消息),我看到DBAh中添加了新事件。我试图理解函数中侦听器的用途。为什么不使用event.data.val()获取新事件的数据?@JenPerson
event.data.val()
也会返回所有数据。我不知道如何修改
functions.database.ref('/server/name').onWrite
以返回新元素onlyok,所以您不想返回“1”的值,而是返回其中一个测试字符串的值?就像“测试”或“酷”?如果是这样,我有解决方案谢谢你的帮助Jen,但是根据日志
events.data
仍然输出所有值。我用一张图片更新了我的问题,它确实有效,但因为您将键标记为“1,2,3…”,Firebase将其解释为一个数组,因此显示了一个数组。如果您使用不同的键,它会起作用。我刚才自己试过了。真奇怪,你能把全部代码都发出来吗?也许是因为我没有回报承诺什么的?这是修改DB&@Suhaib更新您的问题后的日志,以反映您的代码现在的样子。好的,我已经更新了我的答案,并对其进行了测试,以确保其按预期工作。我意识到我必须更深入地了解这条路径。但是,根据日志
事件,谢谢你的帮助。数据仍然输出所有值。我用一张图片更新了我的问题,它确实有效,但因为您将键标记为“1,2,3…”,Firebase将其解释为一个数组,因此显示了一个数组。如果您使用不同的键,它会起作用。我刚才自己试过了。真奇怪,你能把全部代码都发出来吗?也许是因为我没有回报承诺什么的?这是修改DB&@Suhaib更新您的问题后的日志,以反映您的代码现在的样子。好的,我已经更新了我的答案,并对其进行了测试,以确保其按预期工作。我意识到我必须走得更深。