根据查询更新 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);
}
是否可以使用包含 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);
}