以下是在云函数中编写一个删除文档的示例代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.deleteSomeDocs = functions.https.onRequest((req, res) => {
const collectionRef = admin.firestore().collection('myCollection');
const query = collectionRef.where('someField', '==', 'someValue');
query.get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
doc.ref.delete();
});
return res.send('Documents successfully deleted.');
})
.catch((error) => {
console.error(error);
return res.status(500).send(error);
});
});
该云函数将触发HTTP的请求。它通过collectionRef
引用要处理的集合,然后通过.where()
创建一个查询以获取要删除的条件文档。
query.get()
获取与查询匹配的文档的快照。在快照中,可以使用forEach()
迭代每个匹配的文档并调用doc.ref.delete()
删除它。
最后通过返回相应信息来响应请求。
此外,Firebase还支持使用Cloud Scheduler配置定期删除任务。只需按照Cloud Scheduler文档设置调度即可。
exports.deleteSomeDocs = functions.pubsub.schedule('every 24 hours').onRun((context) => {
// 处理代码
});