gpt4 book ai didi

javascript - 具有 startAt 和 endAt 的 orderByChild 不适用于组合字段

转载 作者:行者123 更新时间:2023-12-03 06:07:33 25 4
gpt4 key购买 nike

我想用两个where条件进行查询。我开始知道直接在 firebase 中是不可能的。所以,我采用了下面的方法。将两个属性存储为一个字段并对该字段进行查询。但我没有得到正确的结果。我也收到不匹配的记录,为什么?

await firebase
.child(child)
.orderByChild('t_p')
.startAt(startAt + pId, 't_p')
.endAt((timestamp - 1) + pId, 't_p')
.limitToLast(15)

我尝试了以下方法

 await firebase
.child(child)
.orderByChild('t_p')
.startAt(startAt + pId)
.endAt((timestamp - 1) + pId)
.limitToLast(15)

这两个有什么区别? startat 和 endat 中的第二个选项参数是什么?

我的数据是这样的

{
t_p: "145343423423_afihad223dadd"
},
{
t_p: "1453434133323_afihad223dadd"
},
{
t_p: "145223423423_kkkkaaass"
},
{
t_p: "145223423450_kkkkaaass"
}

如果我查询

.child(child)
.orderByChild('t_p')
.startAt("145223423423_kkkkaaass", 't_p')
.endAt("145223423450_kkkkaaass", 't_p')
.limitToLast(15)

我还获得了其他记录。为什么?

最佳答案

这是因为它是按字典顺序排序的,并且 145343423423 位于 145223423423 和 145223423450 之间。

也许您应该将 t_p 存储为 p_t?这样你就会得到这个:

{
p_t: "afihad223dadd_145343423423"
},
{
p_t: "afihad223dadd_1453434133323"
},
{
p_t: "kkkkaaass_145223423423"
},
{
p_t: "kkkkaaass_145223423450"
}

.child(child)
.orderByChild('p_t')
.startAt("kkkkaaass_14522342342")
.endAt("kkkkaaass_145223423450")
.limitToLast(15)

您应该尝试以您要访问数据的方式存储数据。

关于javascript - 具有 startAt 和 endAt 的 orderByChild 不适用于组合字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465962/

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