清除 Firestore 数据库中的所有数据?

问题描述 投票:0回答:2

经过一年多的开发,我已经有了一个相当完善的网站。现在我要打开它进行公开测试,但我需要清除 Firestore 中的所有数据(都是测试数据)。有没有一种简单的方法可以做到这一点,还是我必须手动删除每个条目? (有超过 1000 个条目)。目前我能想到的唯一现实的选择是将 Firebase 项目切换到新项目,但这不是我想做的事情。

解决方案:联系 Firebase 支持后,我得到了运行以下 CLI 命令,这成功了:

// THIS WILL PROMPT CONFIRMATION AND WILL USE ACTIVE PROJECT
firebase firestore:delete --all-collections

// !!! WARNING !!! THIS WILL NOT PROMPT CONFIRMATION AND WILL USE ACTIVE PROJECT
firebase firestore:delete --all-collections -y

请务必小心谨慎,因为 这会擦除您的整个 Firestore 数据库

firebase google-cloud-firestore
2个回答
1
投票

根据 OP 和 Firebase 团队的说法,以下 CLI 命令即可解决问题:

// THIS WILL PROMPT CONFIRMATION AND WILL USE ACTIVE PROJECT
firebase firestore:delete --all-collections

// !!! WARNING !!! THIS WILL NOT PROMPT CONFIRMATION AND WILL USE ACTIVE PROJECT
firebase firestore:delete --all-collections -y

为了回答OP的另一个问题,以下是如何一键删除Firestore中的整个集合: Firebase 控制台菜单。您基本上可以单击任何集合左上角的三按钮上下文菜单,然后选择

Delete Collection

[发布此内容是为了解决@Nathan的反馈,以便这个热门问题实际上得到官方标记的“答案”]


0
投票

我使用react和redux-toolkit开发了我的网站,为了清除所有集合,我编写了这段代码。我在此输入中写入集合名称,它会删除集合的所有文档,但我仍然拥有我的集合,因此我的所有数据都消失了,我不需要在代码中进行任何更改

const [collectionName, setCollectionName] = useState("");
<form>
    <input type="text" onChange={(e) => setCollectionName(e.target.value)} />
    <span
    onClick={() => dispatch(deleteDocuments(collectionName))}
    >
    Delete documents
    </span>
</form>

export const deleteDocuments = createAsyncThunk(
"deleteDocuments",
async (collectionName, thunkAPI) => {
    try{
    console.log(collectionName);
    const querySnapshot = await getDocs(collection(db, collectionName));
    querySnapshot.forEach(async (testplan) => {
        console.log(testplan);
        await deleteDoc(doc(db, collectionName, testplan.id));
    });
    console.log('all docments successfully deleted');
    } catch (e){
    console.log(e);
    }
}
);
© www.soinside.com 2019 - 2024. All rights reserved.