[英]Difference between google-cloud-firestore and firebase-admin
[英]Difference between starting firestore emulator through `firebase` and `gcloud`?
通过以下方式启动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 工具,您可以启动多个 Firebase 产品的模拟器,而gcloud 命令允许您启动 GCP 模拟器。 Firestore 只是它们共同拥有的产品,因此它们的效用应该相同或相似。
关于功能差异, firebase
提供了--import
和--export-on-exit
标志,允许您在模拟会话之间保存和恢复数据。 它还提供了一种可视化安全规则如何处理当前查询的方法。
除了这些功能之外,我还要注意设置端口和规则文件的不同方法:
firebase emulators
使用firebase.json
文件。gcloud beta emulators
使用标志--host-port
和--rules
来实现相同的功能。请注意,GCP 上的Firestore 模拟器处于beta 阶段,因此它的官方支持可能有限,并且可能会发生变化。 另请注意,在GCP 的 Firestore 文档中,如何使用 Firebase CLI 代替 gcloud。
最后,您应该使用您喜欢的工具,因为它们都朝着模拟 Firestore 的相同目标工作。 如果您已经在使用 Firebase CLI,我建议您继续使用它; 如果您正在使用gcloud
,请使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.