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

如何使用Firebase模块化SDK V9在Firestore中创建自定义ID文档

Firebase 模块化Web SDK V9 自定义ID创建Firestore文档方法

你原有代码中使用的addDoc()方法会自动为新文档生成随机ID,要自定义文档ID需要使用doc()方法先指定目标文档的完整路径,再调用setDoc()方法写入数据。

前置导入

首先确保你已经导入了所需的模块化方法:

import { getDoc, doc, setDoc } from "firebase/firestore";

修改后的完整代码

const register = async function (adminEmail){
  try{
    const docSnap = await getDoc(availableIdRef);
    const collegeId = docSnap.data().id; // 作为自定义文档ID

    // 1. 创建指定ID的文档引用,参数依次为firestore实例、集合名、自定义文档ID
    const adminDocRef = doc(firestore, 'admin', collegeId);
    // 2. 调用setDoc写入数据到指定文档
    await setDoc(adminDocRef, {adminEmail, collegeId});

    // 可选配置:如果需要只更新部分字段不覆盖全文档,可以传入merge参数
    // await setDoc(adminDocRef, {adminEmail}, { merge: true });

  }catch(e){
    alert("Error!");
  }
}

补充说明

如果指定ID的文档已经存在,setDoc()默认会直接覆盖整个文档内容,如果需要保留原有字段只做增量更新,添加第三个参数{ merge: true }即可实现合并写入。

内容的提问来源于stack exchange,提问作者Ashutosh Aswal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:57:01