Fuego
Announcements

Firestore now has an Enterprise edition with a brand new query interface called Pipeline operations. Here's what it is, and what it means for Fuego.

big-idea

Firestore Enterprise Edition and Pipelines

Firestore Enterprise Edition and Pipelines

Firestore now has an Enterprise edition. It runs in Native mode and introduces two things that weren’t available in Standard edition: an advanced query engine that makes indexes optional, and Pipeline operations — a completely new query interface. The Enterprise edition also supports a second mode, MongoDB compatibility, but this article focuses on Native mode with Pipelines.

For a full comparison between Standard and Enterprise, see the editions overview.


What Are Pipeline Operations?

The classic Firestore query model (now called Core operations) has well-known limitations: every query must be backed by an index or it fails immediately, complex multi-field filtering requires careful index planning, and there’s no support for server-side computed fields or functions like min, max, substring, or regex_match.

Pipelines fix all of this. Instead of a single query object, you compose a series of explicit stages. Each stage takes the output of the previous one and transforms it. (official docs)

const db = getFirestore(app, "your-enterprise-database");

const results = await execute(
  db
    .pipeline()
    .collection("books")
    .where(field("genre").equal(constant("Science Fiction")))
    .where(field("rating").greaterThan(4.0))
    .sort(field("published").descending())
    .limit(10),
);

Available stages include filtering (where), projection (select, addFields, removeFields), aggregation (aggregate, distinct), sorting, array flattening (unnest), and vector search (findNearest). You can also compute derived fields server-side using expressions — something that wasn’t possible before:

db.pipeline()
  .collection("orders")
  .addFields(field("subtotal").multiply(constant(1.22)).as("total_with_tax"))
  .where(field("total_with_tax").greaterThan(100))
  .select(field("orderId"), field("total_with_tax"));

Indexes are no longer required — a pipeline query won’t fail if an index is missing, it’ll fall back to a table scan instead. For production workloads you still want indexes for latency and cost, but the developer experience during prototyping is much smoother.

The main limits are a 60-second query deadline and 128 MiB of memory during execution.

Note: Pipeline operations are currently in Preview and only available on Enterprise edition databases. See Native mode interfaces overview for more.


Fuego and Enterprise Edition

From Fuego 1.1.7, Enterprise edition databases work out of the box. They support Core operations the same way Standard edition does, so you can already connect Fuego to an Enterprise database and use everything available today — browsing collections, editing documents, running queries, managing indexes.

From Fuego 1.3.0, Fuego will introduce a dedicated interface for building and running Pipeline queries. More details closer to the release.


Resources


Resources