Exercise 1: What icontains Gives This Course for Free — Possible Solution ==================================================================== WHAT name__icontains PROVIDES ------------------------------ name__icontains=query gives a native, case-insensitive substring match directly through Django's ORM - it finds any item whose name contains the search term anywhere within it, regardless of casing, in a single line of query code, compiling down to a standard SQL LIKE comparison. WHAT THE FIREBASE SIBLING COURSE HAD TO BUILD INSTEAD ------------------------------ Firestore has no equivalent of SQL's LIKE, and no query-time function for case-insensitive comparison at all. To get roughly the same capability, that course's own Chapter 8 had to add a nameLower shadow field (a pre-lowercased copy of the name, since Firestore can't lowercase at query time) and ultimately chose to load the item history once and filter it client-side in JavaScript using .includes(), since even the shadow field only fixed case-sensitivity, not Firestore's own prefix-only query limitation for genuine mid-word matching. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly describes icontains as a native, one-line, case-insensitive substring match, and correctly identifies the shadow-field-plus-client-side-filtering workaround the Firebase sibling course needed to build in order to achieve a comparable result that this course gets for free from the database itself.