Вы можете обновить документ в Firestore, только если вы знаете точный путь к этому документу. Если вы еще не знаете путь, вам придется прочитать документы, чтобы определить это.
Если вы хотите обновить все документы в коллекции, это означает, что вы можете просто позвонить get()
в коллекции, чтобы получить все документы. Даже когда есть только один документ, вам все равно придется обновить все его.
Код выглядит примерно так:
let collectionRef = admin.firestore().collection('users');
collectionRef.get().then(snapshot => {
snapshot.forEach(doc => {
doc.update({
points: admin.firestore.FieldValue.increment(10),
})
});
})
.catch(err => {
console.log('Error getting documents', err);
});
Также см. Документацию для получения всех документы в коллекции .
Если вы используете это в облачной функции или в другой среде, которая не может оставлять обещания без обработки, вам нужно будет вывести результаты:
let collectionRef = admin.firestore().collection('users');
return collectionRef.get().then(snapshot => {
return Promise.all(snapshot.documents.map(doc => {
return doc.update({
points: admin.firestore.FieldValue.increment(10),
})
}));
})