Я хочу обновить документ, найденный по запросу.На самом деле я пробую следующий подход:
export const add_user = functions.https.onRequest((request, response) => {
corsHandler(request, response, () => {
const collectionReference = db.collection("users");
const query = collectionReference.where("name", "==", "John");
fbid_query.get()
.then(function(querySnapshot) {
if (querySnapshot.empty) {
console.log("John notfound");
} else {
console.log("John found!");
querySnapshot.forEach(function (documentSnapshot) {
add_update(query, "George");
});
}
response.json([]);
})
.catch(function(error) {
response.json([]);
});
});
});
.
const add_update = function (query, new_name) {
query.get(function(querySnapshot) {
querySnapshot.forEach(function(document) {
console.log("entered in forEach");
document.ref.update({
name: new_name
});
});
}).then(function () {
console.log("success");
})
.catch(function(error) {
console.error("error: ", error);
});
}
Единственное, что появляется console.log
это success , хотя ничего не обновляется и Джондействительно существует в Cloud Firestore.
Что я делаю не так?
PS: Я не знаю, имеет ли это значение, но прежде чем я на самом деле пытаюсь обновить, я звоню query.get()
просто чтобы проверитьесли что-то существует (и после того, как я называю этот подход обновлением).