在我的国际象棋应用程序中,我使用Firebase.ServerValue.TIMESTAMP
来记录移动的时间,例如:
{
from: 'e2',
to: 'e4',
playedAt: Firebase.ServerValue.TIMESTAMP
}
如何验证playedAt
是Firebase.ServerValue.TIMESTAMP
,而不是像1408663907743这样的任意时间戳?
我希望Firebase安全规则有一个像isTimestamp()
这样的方法,它的工作方式与isNumber()
和isString()
类似,但我找不到。
2条答案
按热度按时间ndasle7k1#
Firebase中的时间戳,例如对应于服务器端宏
Firebase.ServerValue.TIMESTAMP
的时间戳,与任何其他数字一样存储。不存储使它们特殊的附加类型信息。因此,isTimestamp()
将等价于isNumber()
。如果您想进一步验证时间戳是否与当前服务器时间匹配,请参阅this related answer。
nbnkbykc2#
您可以使用
now
特殊关键字,它等于epoch时间(毫秒)如果您是从其他来源生成时间,您可以将其转换为毫秒,并使用类似这样的东西(10 - 20秒时钟漂移)