Cómo enviar una consulta desde Firebase usando FirebaseUI de Android

Tengo un proyecto de chat con Firebase Android SDK para el servidor. Después de 3 meses, mi aplicación tiene muchos usuarios y conversan mucho entre sí. Lleva mucho tiempo cargar todas las listas de chat de Firebase. Así que ahora, me pregunto cómo hacer una búsqueda de búsqueda desde Firebase usando Android SDK.

Investigué este enlace para encontrar un comando de consulta para este problema pero fallé. Solo consulto un número de la fila desde el primero hasta el último. No pude realizar consultas desde ubicaciones aleatorias en Firebase. Ejemplo usando skip y take clave para consultar.

Si tiene algún documento sobre eso. Por favor dime. Gracias de antemano.

Intenté esta demo Firebase Paginator y me funciona. Aunque, tiene algunos problemas.

Los conceptos como skip() o take() no se corresponden bien con el mundo en tiempo real de la base de datos de Firebase. Es por eso que la paginación también será difícil de implementar. Técnicamente es posible, pero para una buena experiencia de usuario es importante tener en cuenta que los datos en una página pueden cambiar mientras el usuario lo ve.

Volviendo a cómo puede implementar la paginación: los startAt() y endAt() toman un segundo parámetro opcional, que está documentado como (énfasis mío):

 public Query startAt (String value, String key) 

Cree una consulta restringida para que solo devuelva nodos secundarios con un valor mayor o igual que el valor dado, usando la directiva orderBy dada como predeterminada, y adicionalmente solo nodos secundarios con una clave mayor o igual que la clave dada .

Entonces, si, por ejemplo, tiene una lista de elementos ordenados por fecha, puede pasar la fecha y la clave del último elemento en la página anterior para obtener la página siguiente. Tendrá que solicitar un artículo adicional (a menudo llamado elemento ancla), pero la sobrecarga debe ser pequeña.