A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Consultas en Firestore: Sencillas y Compuestas, Orden y L铆mites de Datos

11/21
Recursos

Firestore nos proporciona muchas formas de consultar los documentos de nuestras bases de datos: consultas sencillas para ordenar o filtrar nuestros documentos a partir de un valor (por ejemplo, si name es igual a Bogot谩) o consultas compuestas si necesitamos especificar m谩s de un filtro (por ejemplo, si name es igual a Bogot谩 y country es igual a Colombia).

Tipos de filtros para nuestras consultas:

  • .whereEqualTo("campo-que-debemos-comparar", "valor que debe tener")
  • .whereLessThan("campo-que-debemos-comparar", N煤meroM谩ximo)
  • .whereGreaterThan("campo-que-debemos-comparar", N煤meroM铆nimo)
  • .whereArrayContains("campo-que-debemos-comparar", "valor que debe tener nuestro array")
  • Otros filtros: .whereLessThanOrEqualTo, whereGreaterThanOrEqualTo, orderBy, limit, entre otros

Sin embargo, nuestras consultas compuestas deben seguir algunas reglas: no podemos filtrar rangos de valores en campos diferentes.

鉁 Ejemplos correctos:

  • Dos filtros de igualdad en campos diferentes:
    .whereEqualTo("country", "Colombia").whereEqualTo("capital", true)

  • Un filtro de igualdad y otro de rango en campos diferentes:
    .whereEqualTo("country", "Colombia").whereLessThan("population", 100000)

  • Un filtro de rango y otro de ordenamiento con el mismo campo:
    .whereGreaterThan("population", 100000).orderBy("population").limit(10)

???? Ejemplos incorrectos:

  • Dos filtros de rango en campos diferentes
    .whereGreaterThan("population", 100000).whereLessThan("antiquity", 100)

  • Un filtro de rango y otro de ordenamiento en campos diferentes:
    .whereGreaterThan("population", 100000).orderBy("country")

Aportes 4

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Para hacer un OR entonces se podr铆a hacer dos consultas y concatenar las respuestas.

Consultas Compuestas
// Crear referencia a las ciudades de la colecci贸n
val citiesRef = db.collection(鈥渃ities鈥)

// Crear referencia a query sobre la colecci贸n
val query = citiesRef.whereEqualTo(鈥渘ame鈥, 鈥淏ogot谩鈥)
// Obetener todas las ciudades capitales
val capitalcities
db.collection(鈥渃ities鈥).whereEqualTo(鈥渃apital鈥, true)

// Filtros
citiesRef.whereEqualTo(鈥渘ame鈥, 鈥淏ogot谩鈥)
citiesRef.whereLessThan(鈥減opulation鈥,100000)

// Operador array_containes
val citiesRef = db.collection(鈥渃ities鈥)
citiesRef.whereArrayContains(鈥渞egions鈥, 鈥淎mazonas鈥)

Consultas Sencillas
// Crear referencia a las ciudades de la colecci贸n
val citiesRef = db.collection(鈥渃ities鈥)

// Crear referencia a query sobre la colecci贸n
val query = citiesRef.whereEqualTo(鈥渘ame鈥, 鈥淏ogot谩鈥)
// Obetener todas las ciudades capitales
val capitalcities
db.collection(鈥渃ities鈥).whereEqualTo(鈥渃apital鈥, true)

// Filtros
citiesRef.whereEqualTo(鈥渘ame鈥, 鈥淏ogot谩鈥)
citiesRef.whereLessThan(鈥減opulation鈥,100000)

// Operador array_containes
val citiesRef = db.collection(鈥渃ities鈥)
citiesRef.whereArrayContains(鈥渞egions鈥, 鈥淎mazonas鈥)