#javascript #firebase #google-cloud-firestore
# #javascript #огневая база #google-облако-firestore
Вопрос:
Я замечаю, что последний документ дважды помещается в массив, но первый документ вообще не вставляется. Что дает? Так что, оказывается, это не проблема с датой, я думаю, что с запросом что-то не так
let obj = {}
let items = []
db.collection('customer').doc(id).collection('appointments').get().then((snapshot) => {
snapshot.forEach((item) => {
let data = item.data()
console.log(item.id)
obj.start = data.start.toDate()
obj.end = data.end.toDate()
obj.title = data.title
obj.desc = data.desc
//console.log(date)
items.push(obj)
//console.log(items.length)
})
Ответ №1:
Из того, что я могу предположить, вы используете ссылку на объект для отправки в массив. Всякий раз, когда этот объект изменяется, все ссылки на этот объект в этом массиве автоматически изменяются. Таким образом, вы можете увидеть, что независимо от количества элементов, которые вы нажимаете, все они будут последними данными документа.
вы можете попробовать переместить
let obj = {}
Для
>let obj = {}
let data = item.data()
здесь, внутри цикла.
Дайте мне знать, если это сработает!!
Комментарии:
1. Ага. Это сделало свое дело. Я думаю, это потому, что объекты передаются по ссылке. Спасибо
2. Ты уже пришел! 🙂
3. Привет, если мой ответ решил вашу проблему, не могли бы вы пометить его как принятый? Или прокомментируйте иным образом (например, ошибки)