diff --git a/firebase_admin/db.py b/firebase_admin/db.py index 1fb967ce7..119c8fa99 100644 --- a/firebase_admin/db.py +++ b/firebase_admin/db.py @@ -111,6 +111,7 @@ def __init__(self, url, stream_handler, build_headers, stream_id): self.stream_id = stream_id self.sse = None self.thread = None + self.last_value = None self.start() def make_session(self): @@ -134,7 +135,11 @@ def start_stream(self): msg_data["event"] = msg.event if self.stream_id: msg_data["stream_id"] = self.stream_id - self.stream_handler(msg_data) + if not self.last_value: + self.last_value = msg_data["data"] + if msg_data["data"] != self.last_value: + self.last_value = msg_data["data"] + self.stream_handler(msg_data) def close(self): while not self.sse and not hasattr(self.sse, 'resp'): @@ -818,4 +823,4 @@ def _extract_error_message(self, error): return '{0}\nReason: {1}'.format(error, data.get('error', 'unknown')) except ValueError: pass - return '{0}\nReason: {1}'.format(error, error.response.content.decode()) \ No newline at end of file + return '{0}\nReason: {1}'.format(error, error.response.content.decode())