I'm brand new to Flutter and I've just encountered an error : I'm trying to retrieve all documents in a collection with multiples where clauses.
I'm working with Flutter v.3.3.1, Iphone 13 Pro simulator (iOS 15.5) for running my test app, Firebase Firestore as database.
For some context, here's how my data looks like :
Users {
uid,
name,
mail,
budget : {min, max}
(sub-collection) passes : {Ad1, Ad6, ...},
(sub-collection) likes : {Ad3, Ad5, ...}
}
Ads {
uid,
title,
price,
surface,
...
}
I want to get all the ads between a certain range of values (budget min/max) that the current user hasn't declined or liked.
var querySnapshot = await FirebaseFirestore.instance.collection('ads')
.where('price', isGreaterThanOrEqualTo: userBudget.start)
.where('price', isLessThanOrEqualTo: userBudget.end)
.where('uid', whereNotIn: [...passedIds, ...matchesdIds]).get();
I've read Flutter Firestore doc about chaining where (using indexes, etc.) but couldn't figure how to do this. Index seems not to be a proper solution for my problem. I've tried things they recommended on the doc (https://firebase.google.com/docs/firestore/query-data/queries#compound_queries) but I still get this error :
An error occurred while parsing query arguments, this is most likely an error with this SDK. (
0 CoreFoundation 0x00000001803f3d70 __exceptionPreprocess + 236
1 libobjc.A.dylib 0x000000018019814c objc_exception_throw + 56
2 FirebaseFirestore 0x0000000103a1e994 _ZN8firebase9firestore4util16ObjcThrowHandlerENS1_13ExceptionTypeEPKcS4_iRKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE + 540
3 FirebaseFirestore 0x0000000103a1ddc4 _ZN8firebase9firestore4util5ThrowENS1_13ExceptionTypeEPKcS4_iRKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE + 64
4 FirebaseFirestore 0x0000000103d7e3a0 _ZN8firebase9firestore4util20ThrowInvalidArgumentIJNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES9_EEEvPKcDpRKT_ + 72
5 FirebaseFirestore 0x0000000103d7da1c _ZNK8firebase9firestore3api5Query17ValidateNewFilterERKNS0_4core6FilterE + 240
6 FirebaseFirestore 0x0000000103d7d160 _ZNK8firebase9firestore3api5Query6FilterERKN
Lost connection to device.
So, any help is welcomed :)