是否可以使用包含where子句的firebase cloud函数设置值?
例如
admin.firebase.firestore().collection('Accounts').where("imagePathName", '==', docNamed).set({
original: 'trial'
});
这给我一个错误。
答案 0 :(得分:4)
您可以调用set()来创建或更新由DocumentReference类型的对象表示的文档。
查询没有set方法。相反,您将不得不使用get()从查询中获取所有文档以获得QuerySnapshot,然后对其进行迭代,然后分别对每个文档调用set()。
答案 1 :(得分:1)
我只想将此添加到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);
}