在Firebase云功能的新节点中返回所有数据

时间:2017-09-18 21:38:23

标签: javascript node.js firebase firebase-realtime-database google-cloud-functions

这是我输入的数据:

enter image description here

这是我的功能:

exports.updateAll = functions.database.ref('/update/{uid}/{values}').onCreate(event => {
    const data = event.data.val()   
    console.log(data)
    return db.ref(`somewhereElse/somepath/`).update(data)
})

这是我收到的错误:

enter image description here

是否可以将所有创建的值更新回另一条路径?我认为使用event.data.val()创建一个const会起作用,但后来我得到了错误。

1 个答案:

答案 0 :(得分:0)

您对onCreate触发器的引用为/update/{uid}/{values},因此事件数据将是values的参考。例如,/update/{uid}/email的事件数据将是一个字符串,而这不是包含子项的对象。

如果您有理由需要以这种方式触发,则可以找到您所遇到的错误的解决方案。

functions.database.ref('/update/{uid}/{values}').onCreate(event => {

    const key = event.params.values
    const value = event.data.val()

    console.log(key, value)

    return db.ref(`somewhereElse/somepath/{key}`).set(value)
})

可以从事件参数和数据中检索创建的键值。然后我们可以将键插入到其他地方ref,并设置值而不是更新它。