我正在构建一个聊天应用程序。当用户对其本地配置文件进行更新时,我想使用云功能在整个集合组中进行更新。
我成功侦听云函数中的更新并检索具有以下内容的 collectionGroups 列表:
const collectionGroupNameref = await db.collectionGroup('collectionGroupName').where('userId', '==', data.uid).get();
collectionGroupNameref.forEach(async (val: any) => {
const connectionsRef = await db.collection('collectionGroupName').doc(val.id).get();
});
但现在我需要更新该集合组中的一个字段,这就是我遇到问题的地方。
collectionGroup 存储在 2 个位置:
users{id}collectionGroupName{id}
groups{id}collectionGroupName{id}
是否可以更新该集合组中的所有文档
Firestore 不提供任何方法来更新整个集合或集合组,例如 SQL 中的“UPDATE WHERE”。您需要做的是单独编写每个文档。因此,如果您已经对集合组中的文档执行了查询,是否可以简单地迭代结果集中的文档并根据需要更新每个文档。您可以使用 ref 属性文档快照 https://googleapis.dev/nodejs/firestore/latest/DocumentSnapshot.html轻松更新每个文档,无论该文档包含哪个集合。
const querySnapshot = await db
.collectionGroup('collectionGroupName')
.where('userId', '==', 'data.uid')
.get();
querySnapshot.docs.forEach(snapshot => {
snapshot.ref.update(...)
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)