def listen(self, callback): """Registers the ``callback`` function to receive realtime updates. The specified callback function will get invoked with ``db.Event`` objects for each realtime update received from the database. It will also get called whenever the SDK reconnects to the server due to network issues or credential expiration. In general, the OAuth2 credentials used to authorize connections to the server expire every hour. Therefore clients should expect the ``callback`` to fire at least once every hour, even if there are no updates in the database. This API is based on the event streaming support available in the Firebase REST API. Each call to ``listen()`` starts a new HTTP connection and a background thread. This is an experimental feature. It currently does not honor the auth overrides and timeout settings. Cannot be used in thread-constrained environments like Google App Engine. Args: callback: A function to be called when a data change is detected. Returns: ListenerRegistration: An object that can be used to stop the event listener. Raises: FirebaseError: If an error occurs while starting the initial HTTP connection. """ session = _sseclient.KeepAuthSession(self._client.credential) return self._listen_with_session(callback, session)
def create_listener_session(self): return _sseclient.KeepAuthSession(self.credential)