algoliasearch-helper-flutter
algoliasearch-helper-flutter copied to clipboard
HitSearcher is fetching data from Algolia already when just initially adding a stream listener
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 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:
_productsSearcher = HitsSearcher(applicationID: 'latency',
apiKey: '927c3fe76d4b52c5a2912973f35a3077',
indexName: 'STAGING_native_ecom_demo_products');
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
_productsSearcher.responses.listen(_searchPageListener);
⚠️ 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 🔍
- Initialize HitsSearcher()
- Add a listener function to the response stream
- :x: See listener function being called immediately, even without a call to hitsSearcher.query() before.
Expected behavior 💭
Algolia search does not get called immediately when adding the response listener, but only after calling searcher.query()
Environment:
- OS: Android API 33
- Library Versions
- algolia_helper_flutter: 0.5.0 and algolia_helper_flutter: ^1.0.0-pre as well
Additional context
Thanks for supporting Flutter ❤️
I am encountering the same issue. Did you manage to solve it maybe?
One Year Later... How did you work around this?