React Firebase:移除view-count文档后如何重新创建指定ID文档?
解决Firebase指定ID重建文档问题
- 问题出在
addDoc()的用法上:这个方法是用来创建自动生成ID的文档,不能传入指定ID的Doc引用,所以你用它会失败。要创建指定ID的文档,得用setDoc()。 - 另外,其实你不需要删除整个文档来清空字段,直接修改文档内容更高效。
方案一:直接清空文档(保留ID)
不用删文档,直接把内容设为空对象,就能移除所有字段:
const resetViewCounter = async () => { const valueDoc = doc(database, "server-details", "view-count"); // 覆盖文档内容为空对象,保留原ID await setDoc(valueDoc, {}, { merge: false }); }
方案二:先删文档再重建指定ID文档
如果一定要先删再建,把addDoc()换成setDoc():
const resetViewCounter = async () => { const valueDoc = doc(database, "server-details", "view-count"); await deleteDoc(valueDoc); // 创建指定ID的空文档 await setDoc(valueDoc, {}); }
方案三:仅删除value字段(保留其他字段)
如果文档里还有其他字段不想动,只移除value字段,用deleteField()配合updateDoc():
import { deleteField } from "firebase/firestore"; const resetViewCounter = async () => { const valueDoc = doc(database, "server-details", "view-count"); await updateDoc(valueDoc, { value: deleteField() }); }
内容的提问来源于stack exchange,提问作者ahaMfM
相关产品推荐
相关产品推荐

