Reputation: 562
Is it possible to pass a javascript object as a "where query" in Firestore? The traditional way to do a query is like this:
this.db.collection('riders', ref =>
ref.where('vehicle', '==', 'bicycle')
.where('activity', '==', 'available')
.where('isActive', '==', true)
.valueChanges().subscribe();
But I would like to use an object like this:
query = {
vehicle: 'bicycle',
activity: 'available',
isActive: true
}
I'm using AngularFire2
Upvotes: 2
Views: 174
Reputation: 24414
Try this way
query = {
vehicle: 'bicycle',
activity: 'available',
isActive: true
}
this.db.list(`riders`, {
query: {
...query
}
});
Upvotes: 0
Reputation: 598728
This should do the trick:
conditions = {
vehicle: 'bicycle',
activity: 'available',
isActive: true
}
let query = ref;
Object.keys(conditions).forEach((key) => {
query = query.where(key, "==", conditions[key]);
})
this.db.collection('riders', ref => query)
.valueChanges().subscribe();
Upvotes: 1