根据查询更新 Cloud Firestore 中的文档

Updating documents in Cloud Firestore based on a query

是否可以使用包含 where 子句的 firebase 云函数设置值?

例如

admin.firebase.firestore().collection('Accounts').where("imagePathName", '==', docNamed).set({
  original: 'trial'
});

这给我一个错误。

你可以调用set() to create or update a document represented by a DocumentReference类型对象。

查询没有设置方法。相反,您必须使用 get() to obtain a QuerySnapshot 从查询中获取所有文档,对其进行迭代,然后分别对每个文档调用 set()。

我只想将此添加到 Doug Stenvenson 的回答中。

一旦你得到你的 querySnapshot 类似的东西:admin.firestore().collection('Accounts').where("imagePathName", '==', docNamed).get();)

以下代码没有像我那样更新所有文档(但只有一个):

querySnapshot.forEach(async doc => {
  await doc.ref.update(newData);
});

我必须做的是:

for (const doc of querySnapshot.docs) {
  await doc.ref.update(newData);
}