I made this notes app which uses firestore to save data and it is working fine, no problem whatsoever. Now I am trying to implement a search filter on notes and I can't find the right method to do it.

Here is my code that renders the notes on the screen here is the reference image

  List<Widget> _buildNotesView(
      BuildContext context, NoteFilter filter, List<Note> notes) {
    if (notes?.isNotEmpty != true) {
      return [_buildBlankView(filter.noteState)];

    final asGrid = filter.noteState == NoteState.deleted || notesView;
    final factory = asGrid ? NotesGrid.create : NotesList.create;
    final showPinned = filter.noteState == NoteState.unspecified;

    if (!showPinned) {
      return [
        factory(notes: notes, onTap: _onNoteTap),
    final partition = _partitionNotes(notes);
    final hasPinned = partition.item1.isNotEmpty;
    final hasUnpinned = partition.item2.isNotEmpty;
    final _buildLabel = (String label, [double top = 26]) => SliverToBoxAdapter(
          child: Container(
                EdgeInsetsDirectional.only(start: 26, bottom: 25, top: top),
            child: Text(
              style: TextStyle(
                fontFamily: selectedFont,
                color: kHintTextColorLight,
                fontWeight: FontWeights.medium,
                fontSize: 12,
    if (searchController.text.isNotEmpty) {
      notes.forEach((note) {
        if (note.title
                .contains(searchController.text.toLowerCase()) ||
                .contains(searchController.text.toLowerCase())) ;
     //Do something here?

    return [
      if (hasPinned) _buildLabel('PINNED', 0),
      if (hasPinned) factory(notes: partition.item1, onTap: _onNoteTap),
      if (hasPinned && hasUnpinned) _buildLabel('OTHERS'),
      factory(notes: partition.item2, onTap: _onNoteTap),

Any help would be great. I'm open to learning.