通过`Firebase`和`gCloud`启动FireStore模拟器有什么区别?
问题描述
通过:
启动FireStore模拟器有什么不同firebase emulators:start --only firestore
和:
gcloud beta emulators firestore start
这两个选项都允许我的Python应用程序实现与数据库的连接,如下所示:
import google
from google.cloud import firestore
os.environ["FIRESTORE_EMULATOR_HOST"] = "localhost:8081"
os.environ["FIRESTORE_EMULATOR_HOST_PATH"] = "localhost:8081/firestore"
os.environ["FIRESTORE_HOST"] = "http://localhost:8081"
credentials = mock.Mock(spec=google.auth.credentials.Credentials)
client = firestore.Client(credentials=credentials)
我自己注意到的一个区别是,firebase
似乎尊重我的firebase.json
,特别是像这样指定的主机端口:
{
"emulators": {
"firestore": {
"port": "8081"
}
}
}
另一方面,gcloud
忽略firebase.json
,而是选择一个随机端口,除非我显式地通过--host-port
传递端口。这是两者之间更大差异的一部分吗?还有哪些其他差异?
解决方案
我一直在查找这两个工具的文档,它们所做的几乎是相同的事情。
使用Firebase tool可以启动多个Firebase产品的仿真器,而gcloud command允许您启动GCP仿真器。FiRestore只是它们共同拥有的产品,因此它们的实用程序应该相同或相似。 关于功能差异,firebase
提供了允许您在模拟会话之间保存和恢复数据的--import
和--export-on-exit
标志。它还提供了可视化security rules如何处理当前查询的方法。
除了这些功能之外,我还要注意设置端口和规则文件的不同方法:
firebase emulators
使用firebase.json
文件。gcloud beta emulators
使用标志--host-port
和--rules
来实现相同的功能。
gcloud
,请使用它。
相关文章