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 –

相关问题