Open
Description
The database used by factorioprints is Firebase. Firebase allows a filter clause OR an order-by clause but not both.
The old strategy was to download ALL blueprint summaries, ordered, and do the filtering client side. This worked but got slower and consumed more bandwidth over time, until it got prohibitively expensive.
The current strategy is to order-by and paginate server side and filter client side. This makes it so that there are a different number of results per page, including some pages with zero results.
I’m working on migrating from Firebase to a relational database. But this is essentially a rewrite, and it would be good to explore other strategies.