Ich versuche, eine Cloud-Funktion für Firebase erstellen, die einen Benutzer abhängig von der Verzögerung entfernen und den Wert nach der Anzahl der Verzögerung einfügen.wie JavaScript Javascript SetTimeout Funktion in Firebase Cloud-Funktionen
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);
};
Aber es funktioniert nicht kann jemand helfen?
wird die Verzögerung zu mir Minuten erwartet. Gibt es dafür eine Lösung? – Emibrown
Sie könnten einen Cron-Job erstellen, um eine Funktion regelmäßig aufzurufen, und dann Aktionen ausführen, die eigentlich hätten ausgeführt werden sollen. Ein Beispiel für eine App Engine finden Sie unter [this repo] (https://github.com/firebase/functionscron). –