繁体   English   中英

通过`firebase`和`gcloud`启动firestore模拟器的区别?

[英]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标志,允许您在模拟会话之间保存和恢复数据。 它还提供了一种可视化安全规则如何处理当前查询的方法。

除了这些功能之外,我还要注意设置端口和规则文件的不同方法:

请注意,GCP 上的Firestore 模拟器处于beta 阶段,因此它的官方支持可能有限,并且可能会发生变化。 另请注意,在GCP 的 Firestore 文档中,如何使用 Firebase CLI 代替 gcloud。

最后,您应该使用您喜欢的工具,因为它们都朝着模拟 Firestore 的相同目标工作。 如果您已经在使用 Firebase CLI,我建议您继续使用它; 如果您正在使用gcloud ,请使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM