仅为具有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()获取新事件的数据?@JenPersonevent.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更新您的问题后的日志,以反映您的代码现在的样子。好的,我已经更新了我的答案,并对其进行了测试,以确保其按预期工作。我意识到我必须走得更深。