javascript - databases - Cálculo del lado del servidor usando Firebase
post firebase (2)
Dada la hora / fecha de inicio y duración, ¿cómo puedo hacer un cálculo del lado del servidor que determina si un objeto está "finished"
, "in progress"
o "upcoming"
--Show
--duration: "144"
--startDate: "2015-11-10"
--startTime: "14:00"
--status: "?"
JavaScript del lado del cliente para determinar si el programa ya ha comenzado:
// if negative, then show hasn''t started yet
var time = (-(startdate.getTime() - currentdate.getTime()) / 1000 / 60);
JavaScript del lado del cliente para determinar si el programa se ha terminado de ejecutar aún:
// if negative, then show has finished
var timeLeft = channelDuration - timerStartTime;
Para alguien que pasa, creo que ahora Firebase te permite hacer esto mediante Cloud Function
. Para este caso, puede crear la función que determina el status
del estado por otro parámetro cuando los datos se agregan a su base de datos.
Por favor consulte
No hay forma de ejecutar su propio código de servidor en Firebase. Ver:
- Arquitecturas de aplicaciones comunes de Firebase
- Hosting de Firebase con el propio servidor node.js
- ¿Cómo puedo ejecutar el código del servidor en Firebase?
- Cómo escribir código personalizado (lógica) cuando se usa firebase
Pero puede almacenar una marca de tiempo del lado del servidor, que parece ser lo que está tratando de hacer:
ref.child(''Show/startTimestamp'').set(Firebase.ServerValue.TIMESTAMP);
A continuación, puede obtener los espectáculos que aún no han comenzado con:
var shows = ref.child(''Shows'');
ref.orderByChild(''startTimeStamp'').startAt(Date.now()).on(...