firebasegoogle-cloud-firestorefull-text-search

Maximum number of fields for a Firestore document?


Right now I have a products collection where I store my products as documents like the following:

documentID:

title: STRING,
price: NUMBER,
images: ARRAY OF OBJECTS,
userImages: ARRAY OF OBJECTS,
thumbnail: STRING,
category: STRING

NOTE: My web app has approximately 1000 products.

I'm thinking about doing full text search on client side, while also saving on database reads, so I'm thinking about duplicating my data on Firestore and save a partial copy of all of my products into a single document to send that to the client so I can implement client full text search with that.

I would create the allProducts collection, with a single document with 1000 fields. Is this possible?

allProducts: collection

Contains a single document with the following fields:

Every field would contain a MAP (object) with product details.

document_1_ID: {  // Same ID as the 'products' collection
  title: STRING,
  price: NUMBER,
  category: STRING,
  thumbnail
},
document_2_ID: {
  title: STRING,
  price: NUMBER,
  category: STRING,
  thumbnail
},
// AND SO ON...

NOTE: I would still keep the products collection intact.

QUESTION

Is it possible to have a single document with 1000 fields? What is the limit?

I'm looking into this, because since I'm performing client full text search, every user will need to have access to my whole database of products. And I don't want every user to read every single document that I have, because I imagine that the costs of that would not scale very well.

NOTE2: I know that the maximum size for a document is 1mb.


Solution

  • According to the documentation, there is no stated limit placed on the number of fields in a document. However, a document can only have up to 40,000 index entries, which will grow as documents contain more fields that are indexed by default.