Open
Description
Is your feature request related to a problem? Please describe.
There is currently no listen() function for complex queries. This means that you for example cannot listen for realtime updates on the result of order_by_child().
This feature is supported by the underlying REST API, and also in the pyrebase Python client library.
Describe the solution you'd like
A listen() function in the Query class.
Describe alternatives you've considered
- Use pyrebase
- Do sorting and filtering client-side
Additional context
Adding the following code into the Query class seems to be enough to implement this feature:
def listen(self, callback):
return self._listen_with_session(callback)
def _listen_with_session(self, callback, session=None):
url = self._client.base_url + self._pathurl
if not session:
session = self._client.create_listener_session()
try:
sse = _sseclient.SSEClient(url, session, params=self._querystr)
return ListenerRegistration(callback, sse)
except requests.exceptions.RequestException as error:
raise _Client.handle_rtdb_error(error)