gpt4 book ai didi

json - 如何为 Firestore 创建大量示例数据?

转载 作者:行者123 更新时间:2023-12-02 09:47:12 27 4
gpt4 key购买 nike

假设我需要在 firestore 中创建许多不同的文档/集合。我需要快速添加它,比如复制和粘贴 json。我不能用标准的 Firebase 控制台来做到这一点,因为添加 100 个文档将永远占用我的时间。是否有任何解决方案可以在 firestore db 中批量创建具有给定结构的模拟数据?

最佳答案

如果您切换到 Cloud Console (而不是 Firebase 控制台)对于您的项目,您可以使用 Cloud Shell作为起点。
在 Cloud Shell 环境中,您会找到类似 node 的工具。和 python已安装并可用。使用您喜欢的任何一种,您都可以使用 Server Client libraries 编写脚本。 .
例如在 Python 中:

from google.cloud import firestore
import random

MAX_DOCUMENTS = 100
SAMPLE_COLLECTION_ID = u'users'
SAMPLE_COLORS = [u'Blue', u'Red', u'Green', u'Yellow', u'White', u'Black']

# Project ID is determined by the GCLOUD_PROJECT environment variable
db = firestore.Client()

collection_ref = db.collection(SAMPLE_COLLECTION_ID)

for x in range(0, MAX_DOCUMENTS - 1):
collection_ref.add({
u'primary': random.choice(SAMPLE_COLORS),
u'secondary': random.choice(SAMPLE_COLORS),
u'trim': random.choice(SAMPLE_COLORS),
u'accent': random.choice(SAMPLE_COLORS)
})
虽然这是使用静态数据集启动和运行的最简单方法,但它有点不尽如人意。即使用 Firestore,需要实时动态数据来执行其功能,例如实时查询。对于这个任务,使用 Cloud Scheduler & Cloud Functions是一种定期更新样本数据的相对简单的方法。
除了示例生成代码之外,您还将在 Cloud Scheduler 中指定更新频率。例如在下图中, */10 * * * *使用标准的 unix-cron 格式定义每 10 分钟的频率:
Image of frequency settings in Cloud Scheduler
对于非静态数据,时间戳通常很有用。 Firestore 提供了一种在写入时将来自数据库服务器的时间戳作为字段之一添加的方法:
u'timestamp': firestore.SERVER_TIMESTAMP
值得注意的是,如果没有正确分片,像这样的时间戳将在生产系统中成为热点。通常,对同一集合进行 500 次写入/秒是您想要的最大值,这样索引就不会成为热点。分片可以很简单,就像每个用户都有自己的集合(每个用户每秒 500 次写入)。但是,对于此示例,通过预定的 Cloud Function 每分钟编写 100 个文档绝对不是问题。

关于json - 如何为 Firestore 创建大量示例数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com