误删Firebase Firestore集合如何恢复?亲测有效方案
误删Firestore集合后的快速恢复方案
误删Firestore集合后,无需依赖付费备份或等待客服,只要在删除后1小时内操作,就能利用Firestore默认的回溯能力恢复数据,具体步骤如下:
操作步骤
- 打开受影响项目的Cloud Shell控制台
- 执行命令安装Firebase Admin SDK:
npm install firebase-admin - 运行以下只读事务代码,通过指定过去的时间点读取并恢复数据:
const admin = require('firebase-admin'); admin.initializeApp({ databaseURL: 'https://---你的项目ID---.firebaseio.com' }); const db = admin.firestore(); // 替换为你误删的集合名称 const colRef = db.collection("your-collection-name"); // 替换为删除前的秒级时间戳,比如1小时前的时间 const targetTime = new admin.firestore.Timestamp(1699999999, 0); // 只读事务读取指定时间点的数据 db.runTransaction(async (transaction) => { const querySnapshot = await transaction.get(colRef); if (!querySnapshot.empty) { // 可自行添加导出数据的逻辑,示例打印第一条文档内容 const firstDoc = querySnapshot.docs[0]; console.log(firstDoc.data()); console.log("timeStart:", firstDoc.data().timeStart); } else { console.log("未找到数据,请调整时间戳重试"); } },{ readOnly: true, readTime: targetTime }) .catch((error) => { console.error("错误信息:", error); });
注意事项
- 必须在删除后1小时内操作,超过时间窗口无法通过此方法恢复
- 代码中需替换三个占位符:项目ID、集合名称、目标时间戳(秒级)
- 如果未找到数据,微调时间戳重试即可
内容的提问来源于stack exchange,提问作者TheOneGuy
相关产品推荐
相关产品推荐

