使用 axios 向 firebase 实时数据库发送 put 请求时可以合并数据吗?
Can I merge data when sending put request to firebase realtime database using axios?
我可以像这样使用 axios 在 Firebase 实时数据库中更新我的数据:
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.');
});
但是 post 看起来像这样:
{
title: '...',
body: '...'
}
和数据库中的 posts 看起来像这样:
{
title: '...',
body: '...',
createdAt: 123,
updatedAt: 123
}
在放置 post 之前,我给它一个 updatedAt 标记:
post.updatedAt = Date.now();
然后我使用上面的 axios 调用放置 post。
在数据库中,post 最终看起来像这样:
{
title: '...',
body: '...',
updatedAt: 123
}
createdAt 已消失。
我想知道是否有一个配置设置告诉 Firebase 不要覆盖整个 post,而是一个接一个地覆盖每个字段,这样标题就会被覆盖,body 就会被覆盖,updatedAt被覆盖,但 createdAt 保持不变。我相信这称为合并,但是将 merge:true 添加到配置 object 并不能满足我的要求。
有没有办法做我想做的事,或者更新后的 object 是否总是必须包含旧 object 的每个字段,即使该字段没有更新?
谢谢。
要将您写入的数据与 REST 请求中该位置的现有数据合并,use the PATCH
verb。来自这个例子:
curl -X PATCH -d '{
"nickname": "Alan The Machine"
}' 'https://docs-examples.firebaseio.com/rest/saving-data/users/alanisawesome.json'
在 Axios 中似乎翻译成 axios.patch(...)
。
我可以像这样使用 axios 在 Firebase 实时数据库中更新我的数据:
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.');
});
但是 post 看起来像这样:
{
title: '...',
body: '...'
}
和数据库中的 posts 看起来像这样:
{
title: '...',
body: '...',
createdAt: 123,
updatedAt: 123
}
在放置 post 之前,我给它一个 updatedAt 标记:
post.updatedAt = Date.now();
然后我使用上面的 axios 调用放置 post。
在数据库中,post 最终看起来像这样:
{
title: '...',
body: '...',
updatedAt: 123
}
createdAt 已消失。
我想知道是否有一个配置设置告诉 Firebase 不要覆盖整个 post,而是一个接一个地覆盖每个字段,这样标题就会被覆盖,body 就会被覆盖,updatedAt被覆盖,但 createdAt 保持不变。我相信这称为合并,但是将 merge:true 添加到配置 object 并不能满足我的要求。
有没有办法做我想做的事,或者更新后的 object 是否总是必须包含旧 object 的每个字段,即使该字段没有更新?
谢谢。
要将您写入的数据与 REST 请求中该位置的现有数据合并,use the PATCH
verb。来自这个例子:
curl -X PATCH -d '{ "nickname": "Alan The Machine" }' 'https://docs-examples.firebaseio.com/rest/saving-data/users/alanisawesome.json'
在 Axios 中似乎翻译成 axios.patch(...)
。