как встроить документы пожарного депо в карту в поле другого документа? - PullRequest
0 голосов
/ 18 января 2020

У меня есть коллекция событий, и я запрашиваю 4 события, которые скоро начнутся. поэтому я использую этот код, чтобы получить эти 4 события

const willStartSoonEventsSnapshot = await db.collection('events')
        .where("createdBy","==", event.createdBy)
        .where("isActive","==", true)
        .where("hasBeenApproved","==", true)
        .where("dateTimeStart",">",now)
        .limit(4)
        .orderBy("dateTimeStart","asc")
        .get()

, а затем я хочу встроить эти 4 документа событий в пользовательский документ в поле с именем upcomingEvents, которое является картой, результат должен быть как это

enter image description here

но я путаю, как встроить эти 4 снимка событий в карту в поле другого документа, подобного этому?

await db.doc(`users/${uid}`).update({
    upcomingEvents : ..... //map here
})

1 Ответ

0 голосов
/ 18 января 2020

Следующее должно сделать трюк. Мы используем метод forEach() для l oop поверх результатов запроса и строим объект JavaScript, используя квадратные скобки .

  const willStartSoonEventsSnapshot = await db
    .collection('events')
    .where('createdBy', '==', event.createdBy)
    .where('isActive', '==', true)
    .where('hasBeenApproved', '==', true)
    .where('dateTimeStart', '>', now)
    .limit(4)
    .orderBy('dateTimeStart', 'asc')
    .get();

  let upcomingEvents = {};

  willStartSoonEventsSnapshot.forEach(doc => {
    upcomingEvents[doc.id] = {
      city: doc.data().city,
      title: doc.data().title
    };
  });

  await db.doc(`users/${uid}`).update({
    upcomingEvents
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...