使用Firebase进行服务器端计算

时间:2015-11-11 02:12:34

标签: javascript firebase

考虑到开始时间/日期和持续时间,如何进行服务器端计算以确定对象是"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;

2 个答案:

答案 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

请结帐

https://firebase.google.com/docs/functions/