0

這是我輸入的數據:返回所有數據傳回在新的節點在火力地堡雲功能

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) 
}) 

這是我recieving錯誤:

enter image description here

它是possi將所有創建的值更新回另一個路徑?我認爲用event.data.val()創建一個常量會工作,但然後我得到錯誤。

回答

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中,並設置該值而不是更新它。

+0

感謝您的回覆,但問題是將值設置爲其他路徑時的最後一行。那是錯誤出現的地方。 –

+0

是的,我明白你的問題。您正在嘗試更新而不是設置。更新需要一個包含子對象的對象,但您的觸發事件數據是一個字符串。 – Callam