Closed
Description
Describe your environment
- Operating System version: Ubuntu 24.04.1 LTS (WSL)
- Firebase SDK version: 6.6.0
- Firebase Product: database
- Python version: 3.11.2
- Poetry version: 1.8.4
- Firebase cli version: 13.27.0
- Node version: 20.18.0
- Java openjdk version: 21.0.5
Describe the problem
Steps to reproduce:
When using the firebase emulator, the callback registered with the listen method is not called even if the database value is updated.
However, it will be called correctly when not using the emulator.
Relevant Code:
import os
import time
from datetime import datetime
from firebase_admin import initialize_app
from firebase_admin.credentials import Certificate
from firebase_admin.db import Event, reference
# initialize firebase app
cred = Certificate("path/to/certificate.json")
os.environ["FIREBASE_DATABASE_EMULATOR_HOST"] = "localhost:9000"
app = initialize_app(
cred,
options={"databaseURL": "http://localhost:9000/?ns=default-rtdb"},
)
# callback
def callback(event: Event) -> None:
print(event)
ref = reference(
"/aaa",
app=app,
url=app.options.get("databaseURL"),
)
ref.listen(callback)
for i in range(10):
ref.child(datetime.now().isoformat(timespec="seconds")).set({"data": i})
time.sleep(1)