How to use the "where" filter in the Firestore Query module?

I have this output from google cloud firestore Query module but I don’t know how to use the WHERE filter option, either with “giftList” ARRAY CONTAINS “uid”: “some-uid” or with field “uid” EQUAL value “some_uid”


Anyone knows the syntax to use :point_down: ?
image

You should use the Contains function like this and the output will be True or False. So match the output value in filter condition.

1 Like

Thanks, but this function in the firestore query module does not work:
image

Do not type Giftlist; map the giftlist array inside the function.

Also, just type true (using keyboard because this operator may not work).

I cannot map it from the firestore module since I’m doing a Query with the WHERE filter. Your screenshot shows you can map it because you are using a filter tool as a step following the output. I’m trying to query and filter the input from within the firestore module, before the output.


PS: filtering the query with the WHERE is important as i don’t want hundreds of document reads.

This where I am, trying to figure out the right syntax in the WHERE field for the right query filter:

In this case, you will have to use the GET and MAP functions.

I created a dedicated video for this; refer here:

2 Likes

Thanks, very kind of you. But…
I’m dropping MAKE. I thought it was a simpler, more intuitive no code tool, but it’s not.
The google cloud firestore query module does not work (are they aware of that?). The WHERE filter setup part should be a straight forward query (in SQL-like language), yet this “no code” tool makes it mind-boggling difficult, more so than actually writing the SQL query equivalent!
I understand well your suggested formula, I use it daily for handling noSQL data in my application.

No code has been around more 10+ years now, I expect it to be intuitive and simple. The huge amount of help requests on this forum, on reddit and on Stakoverflow (many of which remained unanswered), is red flag to me.

The way these modules usually work is you specify :

  1. The field name in the where - yours is giftList

  2. then you use the operator you want which are defined here but in Make these are now just described as a drop down so you gotta make sure you’re using the right operator for what you are trying to evaluate.

If giftList is an array than you use String: Array contains which maps to ARRAY_CONTAINS.

  1. The issue here is that giftList appears to be an array of collections with key value pairs and I assume this is is coming out of Firebase. So I am wondering if the ARRAY_CONTAINS operator will work. I don’t know what the b operator needs to be for Firebase to search all he collections in giftList for your uid:“string” value pair. I wonder if you could use to toCollection() function to create the proper key value pair of your uid and cb488… string and that is what Firebase expects. Right now it is just searching for the string you’re providing and that will return zero bundles since it is not searching the collection properly.

The issue here is not Make per se, it is wholly dependent on your understanding of the data you are working with an how the Firestore Query Module syntax works with collections in Forestore and how to create the proper where clause.

ps. Make is for sure a lo-code tool since you have to understand the data structures intimately. It is more of a layer on top of the APIs and provides almost infinite flexibility as long as you understand what the API needs to “accept” to properly do its job. I suggest maybe testing the query filter in the Firebase API docs or in Postman first.

3 Likes

No, the firestore query does not work at all, even with integers.

There are 10 topics in this community around this question and not even a single proper answer besides telling users that “they’re doing it wrong”. How helpful.

The issue is with make per se, the whole purpose of this platform is to easily perform such actions. Replicating the same thing in n8n.io was simple as adding the variables!

1 Like