Firebase 时间戳过滤器
Firebase timestamp filter
我是 firebase 的新手,实际上我正在尝试根据时间戳加载一些数据并使用 startat 和 endat 在两个时间戳之间检索。数据通过 Python.
推送
数据如示例截图所示
数据路径popping-fire-7751.firebaseio.com/device488
activevolt: 396
avgPowerFactor: 0.95
avgThdi: 7.5
cubetemp: 37
datetime: "2016-02-08 15:16:32"
timestamp: 1454924792
totalPowerGen: 34
我正在通过 python 将优先级设置为时间戳来推送数据。
当我尝试按此处所示进行过滤时,它 returns 为空。但是没有 startAt 和 endAt 它会显示所有值。
http://jsfiddle.net/casperkamal/EZUtP/64/
var startTime = 1454924792;
var endTime = 1454924798;
new Firebase("https://popping-fire-7751.firebaseio.com/")
.startAt(startTime)
.endAt(endTime)
.once('value', show);
任何人都可以帮助我解决我做错了什么吗?
您正试图跳过 JSON 树中的一个级别:
var startTime = 1454924792;
var endTime = 1454924798;
new Firebase("https://popping-fire-7751.firebaseio.com/")
.child('device488')
.startAt(startTime)
.endAt(endTime)
.once('value', show);
我强烈建议您不再依赖隐式优先级,而是使用 orderByChild()
进行过滤
new Firebase("https://popping-fire-7751.firebaseio.com/")
.child('device488')
.orderByChild('timestamp')
.startAt(startTime)
.endAt(endTime)
.once('value', show);
您需要为安全规则添加索引:
{
"rules": {
"device488": {
".indexOn": ["timestamp"]
}
}
}
但是更明确的行为非常值得添加这个。
我是 firebase 的新手,实际上我正在尝试根据时间戳加载一些数据并使用 startat 和 endat 在两个时间戳之间检索。数据通过 Python.
推送数据如示例截图所示
数据路径popping-fire-7751.firebaseio.com/device488
activevolt: 396
avgPowerFactor: 0.95
avgThdi: 7.5
cubetemp: 37
datetime: "2016-02-08 15:16:32"
timestamp: 1454924792
totalPowerGen: 34
我正在通过 python 将优先级设置为时间戳来推送数据。 当我尝试按此处所示进行过滤时,它 returns 为空。但是没有 startAt 和 endAt 它会显示所有值。
http://jsfiddle.net/casperkamal/EZUtP/64/
var startTime = 1454924792;
var endTime = 1454924798;
new Firebase("https://popping-fire-7751.firebaseio.com/")
.startAt(startTime)
.endAt(endTime)
.once('value', show);
任何人都可以帮助我解决我做错了什么吗?
您正试图跳过 JSON 树中的一个级别:
var startTime = 1454924792;
var endTime = 1454924798;
new Firebase("https://popping-fire-7751.firebaseio.com/")
.child('device488')
.startAt(startTime)
.endAt(endTime)
.once('value', show);
我强烈建议您不再依赖隐式优先级,而是使用 orderByChild()
new Firebase("https://popping-fire-7751.firebaseio.com/")
.child('device488')
.orderByChild('timestamp')
.startAt(startTime)
.endAt(endTime)
.once('value', show);
您需要为安全规则添加索引:
{
"rules": {
"device488": {
".indexOn": ["timestamp"]
}
}
}
但是更明确的行为非常值得添加这个。