Firebase 服务器的时间戳计算
Timestamp calculations at Firebase server
是否可以并建议在需要考虑时间戳计算的 Firebase 服务器上定义写入规则?
例子
场景:用户正在尝试向现有话题添加新评论。
写入规则:如果当前时间介于 Thread.openAtTimestamp 和 Thread.closesAtTimestamp 之间,则只能将评论添加到现有线程。
例如,使用 momentjs 可以很容易地解决这个问题。但我猜 momentjs 库在 Firebase 规则中不可用?
假设你有这个数据结构:
threads
$threadid
openAtTimestamp: 1453820367233
closesAtTimestamp: 1454425139712
comments
$threadid
$commentid
author: "Ismar Slomic"
timestamp: 1454425139711
然后,如果 timestamp
介于该线程的 openAtTimestamp
和 closesAtTimestamp
之间,则您只能在该线程中发表评论。
{
"rules": {
"comments: {
"$threadid": {
"$commentid": {
"timestamp: {
".validate": "
newData.val() > root.child('threads').child($threadid).child('openAtTimestamp') &&
newData.val() < root.child('threads').child($threadid).child('closesAtTimestamp')
}
}
}
}
}
这只是帮助您入门的粗略大纲。 Firebase documentation on security rules 有更多信息。
是否可以并建议在需要考虑时间戳计算的 Firebase 服务器上定义写入规则?
例子
场景:用户正在尝试向现有话题添加新评论。
写入规则:如果当前时间介于 Thread.openAtTimestamp 和 Thread.closesAtTimestamp 之间,则只能将评论添加到现有线程。
例如,使用 momentjs 可以很容易地解决这个问题。但我猜 momentjs 库在 Firebase 规则中不可用?
假设你有这个数据结构:
threads
$threadid
openAtTimestamp: 1453820367233
closesAtTimestamp: 1454425139712
comments
$threadid
$commentid
author: "Ismar Slomic"
timestamp: 1454425139711
然后,如果 timestamp
介于该线程的 openAtTimestamp
和 closesAtTimestamp
之间,则您只能在该线程中发表评论。
{
"rules": {
"comments: {
"$threadid": {
"$commentid": {
"timestamp: {
".validate": "
newData.val() > root.child('threads').child($threadid).child('openAtTimestamp') &&
newData.val() < root.child('threads').child($threadid).child('closesAtTimestamp')
}
}
}
}
}
这只是帮助您入门的粗略大纲。 Firebase documentation on security rules 有更多信息。