Firebase数据库节点条件

Firebase数据库节点条件,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我想知道firebase节点是如何更新的。 例如,如果我正在构建测验应用程序,并且想知道当前用户回答正确答案的速度有多快 节点将是这样的 "correct answer": { "user1Id": "date", "user2Id": "date", "user3Id": "date", "user4Id": "date" } 节点是否会按时间顺序或其他条件进行更新? 如果我想知道用户2得到了哪个位置,我应该检索日期并进行比较吗?或者只是迭

我想知道firebase节点是如何更新的。 例如,如果我正在构建测验应用程序,并且想知道当前用户回答正确答案的速度有多快

节点将是这样的

"correct answer": {
      "user1Id": "date",
      "user2Id": "date",
      "user3Id": "date",
      "user4Id": "date"
  }
节点是否会按时间顺序或其他条件进行更新? 如果我想知道用户2得到了哪个位置,我应该检索日期并进行比较吗?或者只是迭代,如果与user2Id匹配,则停止迭代?
提前谢谢你

显然,比较响应时间更简单,但是,可能存在一个布尔值,它阻止其他用户在任何用户已经响应时响应。提示,使用FireStore

显然,比较响应时间更简单,但是,可能存在一个布尔值,它阻止其他用户在任何用户已经响应时响应。提示,使用FireStore

该对象中的键值对没有按设置顺序排序有很多原因,包括javascript对象上的属性顺序没有保证。再加上网络上、应用服务器上、时间戳上的不确定性(如果它们是由客户端生成的),您可以确定,您应该不确定订单

更好的代表性,国际海事组织,类似于:

"correct answer": {
    userId: { presentedAt:"client time in UTC", answeredAt:"client time in UTC" },
    otherUserId: ...
}
然后,确定一个获胜者就是根据陈述和回答之间的间隔进行排序的问题

let _ = require loadash or underscore
let sortedUserIds = _.sortBy(Object.keys(answerObject), key => {
    let times = answerObject[key];
    return times.answeredAt.getTime() - times.presentedAt.getTime();
});
// the first object in sortedUserIds is the winner, second is runner-up, etc.

我不知道你的游戏,但我认为这种方法对用户来说是最“公平”的。

该对象中的键值对不会按设置时间的顺序排序有很多原因,包括javascript对象上的属性顺序无法保证。再加上网络上、应用服务器上、时间戳上的不确定性(如果它们是由客户端生成的),您可以确定,您应该不确定订单

更好的代表性,国际海事组织,类似于:

"correct answer": {
    userId: { presentedAt:"client time in UTC", answeredAt:"client time in UTC" },
    otherUserId: ...
}
然后,确定一个获胜者就是根据陈述和回答之间的间隔进行排序的问题

let _ = require loadash or underscore
let sortedUserIds = _.sortBy(Object.keys(answerObject), key => {
    let times = answerObject[key];
    return times.answeredAt.getTime() - times.presentedAt.getTime();
});
// the first object in sortedUserIds is the winner, second is runner-up, etc.

我不知道你的游戏,但我认为这种方法对用户来说是最“公平”的。

这是用户竞相追逐的绝对时间吗?我的第一个想法是测量(在客户机上)一个问题的陈述和回答之间的间隔。将这些记录到服务器上,获胜者是具有最小间隔的用户。我的意思是,如果节点按时间顺序更新,例如,user2比user1晚一秒应答,那么节点将如上图所示,对吗?但如果node看起来像这样“正确答案”:{“user2Id”:“date”,“user1Id”:“date”,},我应该正确地比较日期?是不是用户在宇宙中赛跑的绝对时间?我的第一个想法是测量(在客户机上)一个问题的陈述和回答之间的间隔。将这些记录到服务器上,获胜者是具有最小间隔的用户。我的意思是,如果节点按时间顺序更新,例如,user2比user1晚一秒应答,那么节点将如上图所示,对吗?但是如果节点看起来像这样
“正确答案”:{“user2Id”:“date”,“user1Id”:“date”,}
,我应该比较一下日期,对吗?