gpt4 book ai didi

javascript - 如何使用 startAt 和 endAt 根据时间戳过滤 Firebase 数据

转载 作者:行者123 更新时间:2023-12-02 23:19:30 25 4
gpt4 key购买 nike

我正在尝试使用 startAt 和/或 endAt 过滤 firebase 数据。我的数据结构如下。

{
"notes" : {
"-LOs0Ikx4ydM5RatREM1" : {
"data" : {
"dueDate" : 1561629600000,
"description" : "Korewa nan desuka?!",
"createdAt" : 1539611900000,
"title" : "First "
},
"members" : {
"author" : "1212121212121212121212121212"
}
},
"-LOs0Ikx4ydM5RatREM2" : {
"data" : {
"dueDate" : 4004870448000,
"description": "Test"
"createdAt" : 1539611900000,
"title" : "Second"
},
"members" : {
"author" : "1212121212121212121212121212"
}
},
"-LhBt9msLFKqUQ-koI9W" : {
"data" : {
"dueDate" : 1564653600000,
"description" : "abc",
"createdAt" : 1560363158279,
"title" : "August 1"
},
"members" : {
"author" : "3434343434343434343434343434"
}
},
"-LhBtKdDrQv9eKuYdfCi" : {
"data" : {
"dueDate" : 1564653600000,
"description" : "abcdef",
"createdAt" : 1560363158279,
"title" : "August 2"
},
"members" : {
"author" : "3434343434343434343434343434"
}
}
}
}

我希望获取已过 dueDate 的所有“笔记”。

const now = moment().valueOf() //Eg. 1561629500000
database.ref('notes/')
.orderByChild("dueDate")
.endAt(now)
.once("value", (snapshot) => {
console.log('Process expired notes')
snapshot.forEach( (data) => {
const obj = data.val()
console.log('Date comparison:', (now >= obj.data.alertDate))
...

上面的代码不起作用,它返回示例 JSON 中的所有对象。 console.log 为四分之三的返回对象记录“False”。

我可以进行比较并仅处理符合我的标准的对象,但这会达不到目的。

我已在 ["notes\data\alertDate"] 上对数据库建立了索引。

我错过了什么?我一定以某种方式误解了文档。 :)

最佳答案

您的 dueDate 属性嵌套在 data 下,因此您需要将地址设置为 data/dueDate:

database.ref('notes')
.orderByChild("data/dueDate")

您可能希望同时包含 startAt()endAt() 子句,只需为 startAt() 提供合理的值,并且您已在 endAt() 使用的特定值。

关于javascript - 如何使用 startAt 和 endAt 根据时间戳过滤 Firebase 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009328/

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