2017-09-19 9 views
0

24時間後にアイテムを削除するFirebase機能があります。関数は動作しますが、関数にリンクしているWebページが実行され続けているので、関数は無限ループになっています。この問題を解決する方法はありますか?あなたはタイムアウトなしでHTTPSタイプの機能を終了させるために、クライアントに応答を送信するために必要とされるクラウド機能が動作し続ける

exports.delete = functions.https.onRequest((req, res) => { 
const currentTime = new Date().getTime(); 
const dayAgo = currentTime - 86400000; 

ref.child('testlijst') 
    .orderByChild('tijd') 
    .endAt(dayAgo) 
    .once('value') 
    .then(snap => { 
     snap.forEach(c => { 
      c.ref.remove(); 
     }) 
    }); 
}); 

答えて

1

は、これが私たちの関数です。あなたは、あなたが機能している作業が完了した後でなければなりません。これは、約束の使い方を学ぶ必要があることを意味します。あなたは(c.ref.removeによって返されるすべての約束を収集する必要があります)、クライアントへの応答で機能を終了する前に完了するために、それらのすべてをお待ちしています

ref.child('testlijst') 
    .orderByChild('tijd') 
    .endAt(dayAgo) 
    .once('value') 
    .then(snap => { 
     const promises = []; 
     snap.forEach(c => { 
      const p = c.ref.remove(); 
      promises.push(p); 
     }) 
     Promise.all(promises).then(result => { 
      res.send("done"); 
     }); 
    }); 
}); 
関連する問題