0

現在Firebase関数を学習しようとしています。 この新機能はかなり強力で便利なようです。DBイベント関数内のFirebase書き込み操作のクラウド関数

DBの特定の場所との比較を行い、比較結果に応じてDB内の別の場所にデータを書き込む機能を使用したいと思います。

は、ここに私の現在の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

私は関数内で参照を作成する方法とそこからデータを取得する方法を知らない。投稿したコードはattempでした。 –

答えて

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

私はどのように私のデータベースのルートから参照を構築できますか? –

+3

event.data.ref.rootまたはevent.data.adminRef.root –

関連する問題