gpt4 book ai didi

javascript - Firebase:startAt() 不过滤使用键存储的数据,自纪元以来的小时数

转载 作者:行者123 更新时间:2023-12-04 17:11:01 27 4
gpt4 key购买 nike

我的数据从纪元开始以小时为单位存储。我只想获取数据的一部分 - 例如,我想指定我希望所有数据都从 453615 开始。

到目前为止我得到了这段代码:

  this.dbService.databaseRef.child('dev_trends/' + this.deviceUid)
.orderByKey()
.startAt('453615')
.get().then(dataTrends => {
const data = dataTrends.val();

console.log(data);
});

使用上面的代码,我在我的控制台中得到了这个结果:

enter image description here

我的数据模型如下所示:

enter image description here

我应该在我的代码中更改什么以便从 Firebase 过滤数据?


我使用以下代码在服务中创建 databaseRef 变量:

  constructor(private db: AngularFireDatabase) {
//Set what happens when we read all devices
this.databaseRef = db.database.ref(); //Create databaseReference
}

我的数据的 Json:

  {"dev_trends" : {
"-MkMxxZXXzmKclgeGPde" : {
"H" : {
"453614" : "50;45",
"453615" : "50;50",
"453617" : "50;55",
"453630" : "51;60"
},
"T" : {
"453614" : "24;18",
"453615" : "23;17",
"453617" : "23;15",
"453630" : "22;10"
}
}
}}

最佳答案

找出问题所在:

  • startAt() 方法使用键 HT 过滤数据,不是这些键中的数据列表。
  • 解决方案是重构数据模型。

新数据模型:

enter image description here


附加信息:

  • 我并不是说我的解决方案是理想的 - 但对于我的具体问题会成功的。
  • 它仍然需要我做一些额外的工作 - 所以如果其他人对此有更好的解决方案,请也发布您的答案:)

关于javascript - Firebase:startAt() 不过滤使用键存储的数据,自纪元以来的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69447278/

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