如何使用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
相关产品推荐
相关产品推荐

