Я хочу обновить поле в базе данных (firabase) с помощью облачной функции => nodejs
в этом документе я не знаю имени документа, я имею в виду идентификатор документа
я хочу обновить timeSlotId я знаю значение timeSlotId и значение userId
Вместе эти значения не повторяются
так это мой вопрос
await db.collection("Order")
.where("timeSlotId", "= = ", timeSlotNow.id)
.where("userId" , "= = " , request.userId)
.update({timeSlotId : timeSlotChanged.id });
но сейчас работаю



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


db.collection("Order").where("timeSlotId", "= = ", timeSlotNow.id).where("userId" , "= = " , request.userId) определяет Query, у которого нет метода update().
Вам необходимо выполнить запрос с помощью метода get(), чтобы получить соответствующие документы, а затем обновить документы, возвращаемые запросом.
Следующий код должен помочь. Я предполагаю, что запрос возвращает только один документ: если это предположение неверно, см. ниже.
const querySnapshot = await db.collection("Order")
.where("timeSlotId", "= = ", timeSlotNow.id)
.where("userId" , "= = " , request.userId)
.get(); // <=== See the get() method call
querySnapshot.docs[0].ref.update({timeSlotId : timeSlotChanged.id });
Если запрос возвращает несколько документов и вы хотите обновить их все, вы можете сделать следующее:
const querySnapshot = await db.collection("Order")
.where("timeSlotId", "= = ", timeSlotNow.id)
.where("userId" , "= = " , request.userId)
.get(); // <=== See the get() method call
const batch = db.batch();
querySnapshot.forEach((doc) => {
batch.update(doc.ref, {timeSlotId : timeSlotChanged.id });
});
await batch.commit();
Вы упоминаете «по облачной функции => nodejs», так почему вы помечаете вопрос тегом
flutter?