2017-05-26 22 views
1

私は最後に追加された子をクラウド機能で取得しようとしています。ここにコードがあります。私は最後に追加された子を得るために利用可能な関数またはクエリがあるかどうか尋ねたい。 ここに私のコードは:Firebaseクラウド機能、最後に追加された子を取得する

exports.makeUppercase = functions.database.ref('aaa-fff/searchIndex') 
    .onWrite(event => { 
    // all records after the last continue to invoke this function 
    console.log(event.data.val()); 
    console.log(event.data.numChildren()); 
}); 

PSです。私は子供をループさせたくありません。

+0

これはあなたが必要な正確に何ではありませんが、私はそれはあなたを助けることができると思います。https:/ /gist.github.com/MiroHibler/4740915 –

答えて

0

私はあなたのユースケースが何であるかを正確にわからないんだけど、これはあなたの最後の子を取得します:

exports.makeUppercase = functions.database.ref('aaa-fff/searchIndex') 
    .onWrite(event => { 
    // all records after the last continue to invoke this function 
    var lastChild; 
    event.data.forEach(function(child) { 
     lastChild = child; 
    }); 
    console.log(lastChild.val()); 
}); 
+0

私はループを望んでいません。子供の数が100万人の場合、繰り返し回数は100万回になります。 –

+1

あなたのコードは '/ aaa-fff/searchIndex'の変更に対してトリガされ、'/aaa-fff/searchIndex'をすべて受け取ります。百万の子ノードでは、ループは高価な部分ではありません。新しい子ノードに対してのみトリガされたい場合は、さらに深い 'aaa-fff/searchIndex/{pushid}'をトリガする必要があります。この例については、ドキュメントのこのセクションをご覧ください:https://firebase.google.com/docs/functions/database-events#handle_event_data –

関連する問題