Firestore has no substring or full-text search, by design. Options, from simple to proper:
- Keywords array. On write, store
keywords: ["dark","chocolate","bar","choc","choco",...](words plus their prefixes, lowercased) and querywhere("keywords", "array-contains", term). Works fine for short product names. - Search extension. Firebase has official extensions that sync a collection to Algolia, Typesense or Elastic. Real search, typos, ranking. Costs money beyond free tiers.
For 3000 products I'd do 1.