删除Collection Firebase中的所有文档



假设我试图删除Firebase Cloud Firestore中一个名为attributes的集合中的所有文档。

我试着:

const collectionRef = collection(db, 'projectAttributes');
try {
const snapshot = await getDocs(collectionRef)
// Delete each document in the collection
const deletePromises = snapshot.docs.map((doc :any) => doc.ref.delete())
await Promise.all(deletePromises)
return (`Deleted ${deletePromises.length} documents from the 'projectAttributes' collection.`)
} catch (error) {
return(`Error deleting documents: ${error}`);
}

但是我得到delete()不存在的错误。

我也尝试了这个StackOverflow问题中给出的方法。

db.collection('cities').get().then(querySnapshot => {
querySnapshot.docs.forEach(snapshot => {
snapshot.ref.delete();
})
})

然而,我首先必须将db.collection('cities')更改为collection(db, 'cities'),然后传递以下错误Property 'get' does not exist on type 'CollectionReference<DocumentData>'试图解决这个问题,一切都在走下坡路。

注意

firebase -v传递11.24.1

npm -v传递8.11.0

无论如何都不能这样删除快照。此外,它可能与使用地图在TS.我已经尝试和测试了下面的代码。不如试试这个:

import { initializeApp } from 'firebase/app';
import {
getFirestore,
collection,
getDocs,
deleteDoc,
} from 'firebase/firestore';
const collectionRef = collection(db, 'projectAttributes');
const docsArr = [];
try {
const snapshot = await getDocs(collectionRef);
snapshot.forEach(doc => {
docsArr.push(deleteDoc(doc.ref));
});
Promise.all(docsArr).then(() => console.log('documents deleted'));
} catch (error) {
return `Error deleting documents: ${error}`;
}

相关内容

  • 没有找到相关文章

最新更新