TL;DR:
Algolia backend gets called with a search immediately after adding a listener function to the response stream, even before actively starting a search by executing the hitsSearcher.query(String query) method.
Long version:
I'm following Getting started with Flutter Helper, but want to use algolia_helper_flutter without infinite_scroll_pagination and following clean architecture using the BLoC pattern.
I'm initializing the HitsSearcher in my BLoC constructor the common way like this:
ā ļø As soon as I call listen() to add the listener function, HitsSearcher executes a call to the Algolia backend. This I don't want, because I'm still in the setup phase in my BLoC constructor.
Describe the bug š
TL;DR: Algolia backend gets called with a search immediately after adding a listener function to the response stream, even before actively starting a search by executing the
hitsSearcher.query(String query)
method.Long version:
I'm following Getting started with Flutter Helper, but want to use
algolia_helper_flutter
withoutinfinite_scroll_pagination
and following clean architecture using the BLoC pattern.I'm initializing the HitsSearcher in my BLoC constructor the common way like this:
I also want to add a listener to the responses stream as soon as responses are coming in after queries.
I can do that with
ā ļø As soon as I call
listen()
to add the listener function, HitsSearcher executes a call to the Algolia backend. This I don't want, because I'm still in the setup phase in my BLoC constructor.This call is happening because when accessing the responses stream, this code is executed:
searchService.search(req.state)
: https://github.com/algolia/algoliasearch-helper-flutter/blob/0b0154a5aed1a198239cc957ab05a68abbbe1d2a/helper/lib/src/searcher/hits_searcher.dart#L272..which in turn executes this: https://github.com/algolia/algoliasearch-helper-flutter/blob/0b0154a5aed1a198239cc957ab05a68abbbe1d2a/helper/lib/src/service/algolia_hits_search_service.dart#L77
To Reproduce š
Expected behavior š
Algolia search does not get called immediately when adding the response listener, but only after calling searcher.query()
Environment:
Additional context
Thanks for supporting Flutter ā¤ļø