Запрос nodejs Firebase теперь работает, как я могу его отредактировать

Я хочу обновить поле в базе данных (firabase) с помощью облачной функции => nodejs

в этом документе я не знаю имени документа, я имею в виду идентификатор документа

я хочу обновить timeSlotId я знаю значение timeSlotId и значение userId

Вместе эти значения не повторяются

так это мой вопрос

     await db.collection("Order")
     .where("timeSlotId", "= = ", timeSlotNow.id)
     .where("userId" , "= = " , request.userId)
     .update({timeSlotId : timeSlotChanged.id });

но сейчас работаю

Вы упоминаете «по облачной функции => nodejs», так почему вы помечаете вопрос тегом flutter?

Renaud Tarnec 19.02.2024 15:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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();

Другие вопросы по теме