Gab*_*nus 1 javascript firebase firebase-realtime-database
我已经浏览了 Firebase 文档,另外我在 Firebase 中找到了一些关于 set() 与 update() 的关于 stackoverflow 的主题:例如这里
很明显,他们两个之间的区别是什么。
在下面的代码中,为什么 update() 会覆盖我现有的数据?
function saveChanges(event) {
event.preventDefault();
let modifiedTitle = document.getElementById('blog-title').value;
let modifiedContent = document.getElementById('blog-content').value;
let modifiedId = document.getElementById('blog-id-storage').innerHTML;
let postData =
title: modifiedTitle,
content: modifiedContent
};
let updates = {};
updates[modifiedId] = postData;
firebase.database().ref().child('posts/').update(updates);
}
Run Code Online (Sandbox Code Playgroud)
我最初有一个标题、内容、datePosted 和 Id,当我更新它时,标题和内容会更新,而 dataPosted 和 Id 会被删除。为什么?虽然这应该是 set() 的行为?
update() 的工作方式是它只查看您调用 update 的位置的直接子级。该位置下方的所有内容都将被替换。因此,您所做的是每次都替换整个 postId-1。
如果您真的只想更新 postId-1 的子项,则将其设为您调用 update() 的基本位置:
firebase.database().ref().child('posts').child(modifiedId)
.update(postDate)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |