Я только что начал использовать Firebase в Android и написал запрос вот так.
messageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message")
.child(conversationID).limitToLast(INITIAL_MESSAGE_COUNT)
.orderByChild("timestamp").startAt(participant.joiningDate).endAt(endAt);
Я могу дать только limitToFirst
, limitToLast
, startAt
, endAt
.(Я думаю, что центра нет)
Мне нужно указать метку времени (например, 10 часов), и я хочу запросить 10 сообщений до 10 часов утра и 10 сообщений после 10 часов утра.(но я не знаю, когда это начнется, когда это закончится).
Редактировать
Я хочу сделать что-то вроде этого.
messageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message").
child(conversationID).
orderByChild("timestamp").equalTo(endAt).limitToFirst(INITIAL_MESSAGE_COUNT).limitToLast(INITIAL_MESSAGE_COUNT);
Но если я это сделаю, то произойдет сбой следующим образом.
java.lang.IllegalArgumentException: Невозможно вызвать limitToLast для запроса с ранее установленным пределом!
Как мне поступить?
Мои данные в базе данных примерно такие.