Best Approach for Filtering & Pagination in FlutterFlow with Firebase

Database & APIs

Hey everyone,

I've built a marketplace app for surfboards and gear using FlutterFlow and Firebase. The app is similar to Facebook Marketplace, but a key differentiator is advanced filtering, allowing users to sort and filter listings based on various surfing-related attributes.

The app has been well received, and our database has grown quickly to over 7,000 live listings. Currently, the home page queries Firebase’s listings collection and retrieves all live listings. However, due to Firebase’s limitations on query operators (i.e., only allowing <, <=, >, >=, !=, and not-in on a single field per query), I've had to handle filtering on the front end with a custom function. The listings are displayed in a GridView widget, so they don’t all render on page load, which helps performance, however...

My concern is:

  • Every user still loads the full dataset, and as the platform scales, this approach may not be sustainable.

  • From my understanding, FlutterFlow’s "dynamic children" feature inherently requires a finite parent query, which means true infinite scroll won’t work unless filtering happens at the backend.

What I’d Like to Achieve

  • Either, offload filtering to the backend to avoid fetching all listings upfront.

  • Or, Implement pagination so users don’t load the entire dataset at once.

  • And, stay with Firebase for authentication, cloud functions, etc.

  • Ideally avoid a full migration to Supabase, as that feels like a huge lift.

Question

Does anyone have suggestions for handling pagination and/or backend filtering in FlutterFlow while still using Firebase? Are there workarounds or best practices to avoid loading the entire listings collection for every user?

Thanks so much!

What have you tried so far?

See above

Did you check FlutterFlow's Documentation for this topic?
No
2
3 replies