我有事件集合,我查询了 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()
然后,我想upcomingEvents
将这4 个事件文档嵌入到一个名为Map的字段中的用户文档中,结果应该是这样的
但我很困惑如何将那 4 个事件快照嵌入到另一个文档的字段中?
await db.doc(`users/${uid}`).update({
upcomingEvents : ..... //map here
})
以下应该可以解决问题。我们使用forEach()
方法循环查询的结果并使用方括号表示法构建一个 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
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句