# #node.js #firebase #google-cloud-firestore
Вопрос:
Я хочу добавить новое поле в уже существующий документ, но когда я использую «объединить: верно», оно стирает все предыдущие данные.
Вот создание документа:
await db.collection('projects').doc(JSON.stringify(project.orderId)).set(
{
'orderId': project.orderId,
'name': project.name,
}, { merge: true }
)
Результат :
ID : {
orderID: ID,
name: "project"
}
И вот когда я хочу добавить новое поле:
await db.collection('projects').doc(project.orderId).set(
{
'responsable': project.responsable,
}, { merge: true }
)
ID : {
responsable: "resp"
}
Комментарии:
1. Этого не должно произойти. Можете ли вы войти
project
в систему и поделиться тем, как выглядит объект ? Почему вы используетеstringify()
в первом фрагменте кода2. Не потому ли, что в первом случае вы используете
JSON.stringify(project.orderId)
идентификатор документа, а во втором случае используете толькоproject.orderId
его ? Просто чтобы проверить… так как мы не знаем, что этоproject.orderId
такое .3. Я удалил
JSON.stringify
его, так как это было бесполезно. Он по-прежнему стирает данные, но не каждый раз4. Что вы подразумеваете под «стиранием данных, но не каждый раз»?
5. Пожалуйста, напишите ответ с вашими выводами, чтобы любой, кто может найти этот вопрос в будущем, мог увидеть решение без необходимости читать комментарии.