考虑到开始时间/日期和持续时间,如何进行服务器端计算以确定对象是"finished"
,"in progress"
还是"upcoming"
--Show
--duration: "144"
--startDate: "2015-11-10"
--startTime: "14:00"
--status: "?"
客户端javascript以确定节目是否已开始:
// if negative, then show hasn't started yet
var time = (-(startdate.getTime() - currentdate.getTime()) / 1000 / 60);
客户端javascript确定节目是否已经完成运行:
// if negative, then show has finished
var timeLeft = channelDuration - timerStartTime;
答案 0 :(得分:10)
无法在Firebase上运行您自己的服务器端代码。参见:
但可以存储服务器端时间戳,这似乎是您尝试做的事情:
ref.child('Show/startTimestamp').set(Firebase.ServerValue.TIMESTAMP);
然后你可以通过以下方式获得尚未开始的节目:
var shows = ref.child('Shows');
ref.orderByChild('startTimeStamp').startAt(Date.now()).on(...
答案 1 :(得分:3)
对于路过的人,我认为现在Firebase允许您通过import {IDispatch} from '~react-redux~redux';
执行此操作。在这种情况下,您可以创建一个函数,在将数据添加到数据库时,通过其他参数确定状态的Cloud Function
。
请结帐