在使用 Firebase 实时数据库模拟器时,需要检查以下几点是否正确设置,以确保能够正常地与模拟器进行交互。
-
配置 Firebase 项目:在 Firebase 控制台中,进入你的项目,选择'数据库”,选择'实时数据库”,在该页面中可以找到'模拟器”选项卡,确保它已启用。
-
配置 Firebase Admin SDK 初始化:在使用 Firebase Admin SDK 的应用中,需要在初始化代码中添加以下几行,以指定连接到模拟器的地址和端口。
from firebase_admin import credentials, db
cred = credentials.Certificate('<path/to/serviceAccountKey.json>')
# 连接模拟器
db_url = 'http://localhost:9000?ns=<your-db-namespace>'
firebase_admin.initialize_app(cred, {'databaseURL': db_url})
在上述代码中,<path/to/serviceAccountKey.json>
为实际下载的您的项目的服务帐户密钥文件路径。<your-db-namespace>
为您的实际数据库命名空间名称。
- 连接模拟器:在终端中运行以下命令,以启动 Firebase 模拟器并将其连接到应用程序。
firebase emulators:start --only database
在执行上述命令后,您将看到类似以下的输出:
i emulators: Starting emulators: database
✔ hub: emulator hub started at http://localhost:4400
i hub: emulator hub started at http://localhost:4400
i database: Watching "/path/to/your/project" for database changes
✔ database: Emulator started at http://localhost:9000
i database: Emulator started at http://localhost:9000
i database: Generating a random Firebase namespace: "test-namespace"
✔ database(test-namespace): Now listening on http://localhost:9000/
其中,http://localhost:9000
是连接模拟器的地址和端口。
- 测试与模拟器的连接:使用以下代码,在 Python 中尝试进行连接和交互。
ref = db.reference('messages')
# 写入数据
ref.push({'text': 'Hello, World!'})
# 读取数据
snapshot = ref.get()
print(snapshot)
如果一切设置正确,应该能够成功