This logs the snapshot:
const db = firebase.firestore();
const collection = db.collection(`companies/${company}/meetings`);
let query = collection.where('start', '>=', new Date());
const snapshot = await query.limit(10).get();
console.log(snapshot);
This doesn’t:
const db = firebase.firestore();
const collection = db.collection(`companies/${company}/meetings`);
let query = collection.where('start', '>=', new Date());
if (branch) {
query = query.where('branch', '==', branch);
}
const snapshot = await query.limit(10).get();
console.log(snapshot);
Does anyone know why?
Advertisement
Answer
Since you are combining the '>=' and '==' operators, Firestore needs to build an index for this query.
If you catch the error with a try/catch block, you will see the corresponding error, and, even better, the error message includes a direct link to create the missing index in the Firebase console.
See the doc here for more details on indexing in Firestore.