@@ -373,8 +373,7 @@ def listen(self, callback):
373
373
Raises:
374
374
FirebaseError: If an error occurs while starting the initial HTTP connection.
375
375
"""
376
- session = _sseclient .KeepAuthSession (self ._client .credential )
377
- return self ._listen_with_session (callback , session )
376
+ return self ._listen_with_session (callback )
378
377
379
378
def transaction (self , transaction_update ):
380
379
"""Atomically modifies the data at this location.
@@ -463,8 +462,11 @@ def order_by_value(self):
463
462
def _add_suffix (self , suffix = '.json' ):
464
463
return self ._pathurl + suffix
465
464
466
- def _listen_with_session (self , callback , session ):
465
+ def _listen_with_session (self , callback , session = None ):
467
466
url = self ._client .base_url + self ._add_suffix ()
467
+ if not session :
468
+ session = self ._client .create_listener_session ()
469
+
468
470
try :
469
471
sse = _sseclient .SSEClient (url , session )
470
472
return ListenerRegistration (callback , sse )
@@ -907,6 +909,7 @@ def __init__(self, credential, base_url, timeout, params=None):
907
909
super ().__init__ (
908
910
credential = credential , base_url = base_url ,
909
911
timeout = timeout , headers = {'User-Agent' : _USER_AGENT })
912
+ self .credential = credential
910
913
self .params = params if params else {}
911
914
912
915
def request (self , method , url , ** kwargs ):
@@ -941,6 +944,9 @@ def request(self, method, url, **kwargs):
941
944
except requests .exceptions .RequestException as error :
942
945
raise _Client .handle_rtdb_error (error )
943
946
947
+ def create_listener_session (self ):
948
+ return _sseclient .KeepAuthSession (self .credential )
949
+
944
950
@classmethod
945
951
def handle_rtdb_error (cls , error ):
946
952
"""Converts an error encountered while calling RTDB into a FirebaseError."""
0 commit comments