Я могу обновить свои данные в базе данных Firebase Realtime, используя ax ios, например:
axios.put('/blogposts/' + postId + '.json', post, {headers: {'Content-Type': 'application/json'}}).then(response => {
res.status(200).send(json.stringify(response.data));
}).catch(err => {
res.status(500).send('error putting blog post.');
});
Но помещаемая запись выглядит так:
{
title: '...',
body: '...'
}
и посты в базе данных выглядят так:
{
title: '...',
body: '...',
createdAt: 123,
updatedAt: 123
}
Перед размещением поста я ставлю ему обновленный штамп:
post.updatedAt = Date.now();
Затем ставлю пост с помощью топора ios звоните выше.
В базе данных пост в конечном итоге выглядит так:
{
title: '...',
body: '...',
updatedAt: 123
}
созданный исчез.
Мне интересно, есть ли параметр конфигурации, который говорит Firebase не перезаписывать весь пост, но каждое поле одно за другим, чтобы заголовок перезаписывался, тело перезаписывалось, updatedAt перезаписывалось, но createAt оставалось в покое. Я считаю, что это называется слиянием, но добавление merge: true к объекту конфигурации не делает то, что я хочу.
Есть ли способ сделать то, что я хочу, или обновленный объект всегда должен включать каждое поле старого объекта, даже если поле не обновляется?
Спасибо.