Tengo una colección de documentos como este:
{ uid: <UNIQUE_USER_ID>, lastLoggedIn: <TIMESTAMP_IN_NUMBER>, ... }cuando trato de obtener los datos usando:
Server.db .collection(firebasePaths.funfuse_verified_users) .where('uid', 'not-in', notToIncludeAccounts) .orderBy('lastLoggedIn', 'desc') .startAt(startAt) .limit(limit)Me sale un error diciendo:
Error: 3 INVALID_ARGUMENT: inequality filter property and first sort order must be the same: uid and lastLoggedIn ¿Es esta una limitación conocida de Firebase o estoy haciendo algo mal? Quiero consultar a todos los usuarios que no están en una matriz using not-in y luego ordenar esos resultados según la actividad de la marca de tiempo lastLoggedIn .
Como dice el mensaje de error, para poder usar not-in , primero debe ordenar en el mismo campo:
Server.db .collection(firebasePaths.funfuse_verified_users) .orderBy('uid') .where('uid', 'not-in', notToIncludeAccounts) .orderBy('lastLoggedIn', 'desc') .startAt(startAt) .limit(limit) Esto también significa que los resultados se ordenarán primero en uid y solo luego (si hay varios resultados con el mismo valor de uid ) en lastLoggedIn . Si los necesitas en otro pedido, tendrás que recurrirlos en tu código de solicitud.