1

特定の日付にクラウド機能を使用してアプリケーションを作成し、firebase DBを削除する際に問題が発生しています。特定の日付にfirebase DBデータを削除するfirebaseクラウド機能の使用方法

enter image description here

これは、私がデータを格納しています方法です、私はnextDonationDateに、このノードを削除したい、私は多くのことを検索し、これは、クラウド機能を使って行うことができたが、私は何をするのか分からなかったとアクセスこれは日付がユーザーのUserIDの下に保存されているので、それを参照するために問題に直面し、nextDonationDateで実行を実行するために問題を解決する方法はありますか?ありがとう:)

答えて

1

は、クラウド機能コードは次のようなものになりますことがあります利用可能な場合、実際に私はDB上のリストの最後の寄付の日付を示すのです....私の質問に答えるための@Kushan

exports.deleteByDate = functions.https.onRequest((req, res) => { 
    //url example 
    // deletebydate?date=Oct 28, 2017 
    var targetDate = req.query.date; 

    var db = admin.database(); 
    var donorDbRef = db.ref('Blood_donors_last_donation_date'); 
    var updateVal = {}; 

    donorDbRef 
     .orderByChild('nextDonationDate') 
     .equalTo(targetDate) 
     .once('value') 
     .then(snapshot => { 
     snapshot.forEach(childSnapshot => { 
      updateVal[childSnapshot.key] = null 
     }); 
     donorDbRef.update(updateVal, (error)=>{ 
      if(!error) 
      res.status(200).send('succeed deleting data!'); 
      else 
      res.status(200).send('failed deleting data!');     
     }); 
     }); 


}); 
1

FirebaseはYoutubeのチュートリアルで、クラウド機能トリガーのためにCronジョブをスケジュールする方法を示しました。

https://www.youtube.com/watch?v=CbE2PzvAMxA

あなたは、あなたの関数へのHTTP呼び出しを行います定期的に実行し、このクーロンを持つことができます。ここでは、すべてのノードをループし、ロジックごとにnextDonationDateをチェックし、条件に一致するノードを削除できます。

あなたの要件に合わせて最適化することができます。これは、何が何で何をやる必要があるのか​​正確には分かりません。

+0

おかげで.... UserIdの子参照を持つDB上で利用可能なデータがない場合は、Availableを表示し、最後の寄付日を示すelseを表示します。 –

関連する問題