通过`Firebase`和`gCloud`启动FireStore模拟器有什么区别?

Difference between starting firestore emulator through `firebase` and `gcloud`?(通过`Firebase`和`gCloud`启动FireStore模拟器有什么区别?)
本文介绍了通过`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来实现相同的功能。
请注意,GCP上的Firestore emulator位于beta stage上,因此它的官方支持可能有限,可能会发生变化。还请注意,在GCP's Firestore documentation上,如何使用Firebase CLI而不是gCloud。

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

这篇关于通过`Firebase`和`gCloud`启动FireStore模拟器有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)