Skip to content

[FR] Complex database queries should support realtime updates #598

Open
@bringert

Description

@bringert

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions