Я хочу запросить с двумя условиями условия. Я узнал, что это невозможно прямо в firebase. Итак, я использую следующий метод. Сохранение двух свойств в качестве одного поля и запросов в этом поле. Но я не получаю правильный результат. Я тоже получаю несоответствующие записи, почему?orderByChild с startAt и endAt не работает для комбинированного поля
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)
В чем разница между этими двумя? Что такое второй параметр param в 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)
Я получаю другие записи, а также. Зачем?
По * другим записям *, вы имеете в виду 't_p:" 145343423423_afihad223dadd "'? –
@AL. Да, это правильно – user43286
Не используйте второй аргумент в .startAt (startAt + pId, 't_p') '. Это обычно неправильно понимают и не помогут. Помимо этого вы можете воспроизвести проблему в jsbin, чтобы я мог посмотреть (и не нужно будет размышлять о значениях 'startAt',' pId' и 'timestamp')? –