You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量上传带多选项的题库至Firebase Firestore?

高效批量上传Firestore测验题方案

针对你需要批量上传1000道选择题到Firestore的需求,以下是几个实用方案:

方案一:Python脚本批量导入(最灵活可控)

这是适配自定义数据结构最可靠的方式,步骤如下:

  1. 整理源数据:把所有题目整理成Excel/CSV,列名对应目标结构,比如:
    • question_text:题目内容
    • option1_value:选项1内容
    • option1_correct:是否正确(True/False)
    • option1_details:选项说明
    • 以此类推到option4,再加img_url、video_url、description、id
  2. 编写Python脚本:用pandas读取CSV,转换成指定的Firestore文档结构,再通过firebase-admin SDK批量写入。

示例代码片段:

import pandas as pd
import firebase_admin
from firebase_admin import credentials, firestore

# 初始化Firebase
cred = credentials.Certificate("path/to/serviceAccountKey.json")
firebase_admin.initialize_app(cred)
db = firestore.client()

# 读取CSV数据
df = pd.read_csv("questions.csv")

# 循环处理每一行
for index, row in df.iterrows():
    # 构建选项数组
    options = [
        {"correct": row["option1_correct"], "details": row["option1_details"], "value": row["option1_value"]},
        {"correct": row["option2_correct"], "details": row["option2_details"], "value": row["option2_value"]},
        {"correct": row["option3_correct"], "details": row["option3_details"], "value": row["option3_value"]},
        {"correct": row["option4_correct"], "details": row["option4_details"], "value": row["option4_value"]}
    ]
    # 构建文档数据
    question_data = {
        "Questions": {
            "text": row["question_text"],
            "options": options,
            "img": row["img_url"],
            "video": row["video_url"]
        },
        "description": row["description"],
        "id": row["id"]
    }
    # 写入Firestore,指定集合名比如"quiz_questions"
    db.collection("quiz_questions").document(row["id"]).set(question_data)
    print(f"已上传第{index+1}题")

方案二:Firebase CLI批量导入

如果不想写代码,可通过Firebase CLI工具实现:

  1. 转换数据格式:把Excel转成CSV后,将其转换成Firestore支持的NDJSON(换行分隔JSON),每一行对应一个文档,结构严格匹配你指定的格式。
    示例NDJSON行:
    {"Questions": {"text": "题目内容", "options": [{"correct": false, "details": "(wrong)", "value": "选项1"}, ...], "img": "url", "video": "url"}, "description": "描述", "id": "q1"}
    
  2. 安装Firebase CLI:执行npm install -g firebase-tools,登录并初始化项目。
  3. 执行导入命令:
    firebase firestore:import --project=你的项目ID --collection=quiz_questions --file=questions.ndjson
    

方案三:Google Sheets同步(适合非技术人员)

用Firebase官方扩展实现Sheet与Firestore自动同步:

  1. 在Firebase控制台「扩展」市场搜索**"Firestore Sync"或"Google Sheets to Firestore"**并安装。
  2. 创建Google Sheets,按指定结构设置列(比如question_text、option1_value等),每一行对应一道题。
  3. 配置扩展,关联Sheet和Firestore集合,之后在Sheet里批量编辑或导入题目,数据会自动同步到Firestore。

内容的提问来源于stack exchange,提问作者Prince Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:40:25