我想在Firestore的文档集中更改每个名为boston的州的名称,如何查询Firestore中的文档列表,然后使用react native将当前州名更改为新名称?
我尝试过
{{1}}
但出现此错误
函数WriteBatch.update()要求其第一个参数为DocumentReference,但它是:自定义查询对象
答案 0 :(得分:2)
事实上,sfDocRef
不是DocumentReference
,而是Query
。
您必须使用异步get()
方法执行查询,并将该查询返回的每个文档添加到批处理中。以下代码可以达到目的:
var batch = db.batch();
var sfRe = db.collection("country").doc("SF");
var sfDocQuery = db.collection("cities").where("state", "==", "boston");
sfDocQuery.get().then(querySnapshot => {
querySnapshot.forEach(doc => {
batch.update(doc.ref, { "state": NewName });
});
//......
batch.update(sfRe, {"state": NewName}); //This one will work, since sfRe is a DocumentReference
//......
return batch.commit()
})
.then(() => {
//The commit() method is asynchronous and returns a Promise
//return for your Save function
})