再次删除带有文档和集合的集合(firestore react native)
Posted
技术标签:
【中文标题】再次删除带有文档和集合的集合(firestore react native)【英文标题】:delete a collection with document and collection again inside (firestore react native) 【发布时间】:2021-11-23 02:08:19 【问题描述】:我无法在 Firestore 上删除
这是我的删除
var chatId = route.params.number; // +639266825843
var docRef = firestore().collection('ChatRoom').doc(chatId).collection('messages');
docRef.doc(chatId).delete();
但每次我尝试删除时都没有任何反应。完全没有错误。
这就是我设置该集合的方式
firestore().collection('ChatRoom')
.doc(id)
.collection('messages')
.add(...myMsg, createdAt:firestore.FieldValue.serverTimestamp())
【问题讨论】:
【参考方案1】:如果要删除messages
(子)集合的所有文档,则需要查询集合并删除每个文档,例如使用Promise.all()
或使用batched write(仅包含删除)
var chatId = route.params.number; // +639266825843
var colRef = firestore()
.collection('ChatRoom')
.doc(chatId)
.collection('messages');
colRef.get().then((querySnapshot) =>
Promise.all(querySnapshot.docs.map((d) => d.ref.delete()));
);
QuerySnapshot
的docs
属性返回QueryDocumentSnapshot
s 的数组。
此外,查看您的+639266825843
文档是如何以斜体 字体显示的:这意味着,在控制台中,该文档仅作为一个或多个子的“容器”出现-collection(s) 但它不是“真正的”文件。它不存在,因为您从未创建它,您只在其子集合之一中创建了文档。更多详情here.
【讨论】:
这会只删除带有+639266825843
的集合及其子集合吗?因为其他人也会使用ChatRoom
收藏先生。
它将删除“doc”+639266825843
的子集合messages
中的所有文档。
会试试这个先生。谢谢。
我的问题解决了。我想知道为什么它不能删除集合,现在我明白了。谢谢。以上是关于再次删除带有文档和集合的集合(firestore react native)的主要内容,如果未能解决你的问题,请参考以下文章
在 Firestore 中使用 Angular 删除集合中的文档
Firestore:获取带有和不带有子集合数据的集合[重复]
如何使用 Flutter 在 Firestore 中删除集合中的所有文档