0

我目前正在嘗試學習Firebase函數。 這個新功能似乎非常強大和有用。用於Firebase寫入數據庫事件功能的雲端函數

我想用一個函數來捕獲數據庫寫入事件,與數據庫中的特定位置進行比較,然後在數據庫中的另一個位置寫入一些數據(取決於比較結果)。

這裏是我當前的Node.js代碼:

exports.verificaFineLavoro = functions.database.ref('/Aziende/{nomeazienda}/LogAsegno/{pushidbracciante}/{pushidlog}/Asegno') 
.onWrite(event => { 
    const original = event.data.val(); 
    console.log('VerificaFineLavoro', event.params.pushId, original); 
    const aSegno = original; 
    console.log('aSegno', aSegno +""); 
    const FineLavoro = ref.parent.parent.parent.parent.child("Asegno/"+aSegno+"/FineLavoro"); 
    return event.data.ref.child('FL').set(FineLavoro); 
}); 

目前該功能被觸發,但是它停止工作,因爲這很可能是錯誤的引用。

+0

如果你已經知道你的引用是錯誤的,那麼是什麼讓你不能修復它們? –

+0

我不知道如何在一個函數內部做一個引用,以及如何從它中取回數據。我發佈的代碼是一個嘗試。 –

回答

4

Cloud Functions for Firebase documentation on triggering from the database包含代碼片段,顯示如何訪問數據庫中的其他節點。

例如,此代碼段設置一個值作爲同級來觸發該功能的節點:

return event.data.ref.parent.child('uppercase').set(uppercase); 

下面是來自sample on counting child nodes另一個片段:

exports.countlikechange = 
functions.database.ref('/posts/{postid}/likes/{likeid}').onWrite(event => { 
    const collectionRef = event.data.ref.parent; 
    const countRef = collectionRef.parent.child('likes_count'); 
    ... 

要訪問數據庫的根目錄,請使用event.data.ref.root(使用觸發該函數的用戶的權限訪問根節點)或event.data.adminRef.root(以完全管理權限訪問根目錄)。

+0

謝謝,我現在就試試吧) –

+0

我如何從我的db的根目錄建立一個參考? –

+3

event.data.ref.root或event.data.adminRef.root –

相關問題