2
firebaseのクラウド関数を作成しようとしていますが、遅延値に応じてユーザーを削除し、遅延数の後ろに挿入します。firebaseクラウド関数でjavascriptのsetTimeout関数を使用する方法
exports.delayqueue = functions.database.ref('/queues/{queueid}/members/{memberid}').onWrite(event => {
var members = event.data.ref.parent;
var user = event.data;
var queueid = members.parent;
var userid = event.params.memberid;
var delayfor = user.child('delay').val();
var name = user.child('name').val();
if(delayfor != 0){
members.child(event.params.memberid).remove();
join(userid,queueid,delayfor,name);
return;
}else{
return;
}
});
function join(userid,queueid,delayfor,name){
setTimeout(function(){
var ref = db.ref("queues/queueid/members/userid");
ref.set({
name: name,
timestamp: Date.now(),
delay : 0
});
}, delayfor*1000);
};
しかし、誰かを助けることはできません。
遅延は分になると予想されます。彼らはそれのための任意のソリューションですか? – Emibrown
cronジョブを作成して、定期的に関数を呼び出して、実行したはずのアクションを実行することができます。 App Engineの例については、[this repo](https://github.com/firebase/functions-cron)を参照してください。 –