gpt4 book ai didi

javascript - Firebase 时间戳过滤器

转载 作者:行者123 更新时间:2023-12-02 15:03:39 25 4
gpt4 key购买 nike

我是 Firebase 的新手,实际上我正在尝试根据时间戳加载一些数据,并使用 startat 和 endat 在两个时间戳之间检索。数据通过Python推送。

数据如示例截图所示

sample data

数据路径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 推送数据,将优先级设置为时间戳。当我尝试按此处所示进行过滤时,它返回 null。但如果没有 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"]
}
}
}

但是更明确的行为非常值得为此付出努力。

关于javascript - Firebase 时间戳过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com