作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用下面的代码将特定数据从 ('Pending')
节点复制到 ('Approved')
节点。它仅复制包含数据的username
和request_status
的节点。复制后如何更新 userid 内的 request_status
?
var oldRef = firebase.database().ref().child('Request').child('Pending');
var newRef = firebase.database().ref().child('Request').child('Approved');
function moveFbRecord(oldRef, newRef) {
oldRef.once('value', function(snap) {
newRef.update( snap.val(), function(error) {
if( !error ) { oldRef.remove();}
else if( typeof(console) !== 'undefined' && console.error ) { console.error(error); }
});
});
newRef.limitTolast(1).update({ snap.val().request_status: "Approved" });<<< I tried inserting this code but I think it messes up every code in my .js file
}
我应该在哪里放置更新代码行?
newRef.limitTolast(1).update({ snap.val().request_status: "Approved" });
最佳答案
更新新节点中的状态:
oldRef.once('value', function(snap) {
var data = snap.val();
data.request_status = "Approved";
newRef.update(data, function(error) {
if( !error ) { oldRef.remove(); }
else if( typeof(console) !== 'undefined' && console.error ) { console.error(error); }
});
});
您甚至可以将旧节点的删除和新节点的写入合并到一个多位置更新中。关键是您提供希望 Firebase 更新的所有数据的完整路径:
oldRef.once('value', function(snap) {
var data = snap.val();
data.request_status = "Approved";
var updates = {};
updates["Request/Approved/"+snap.key] = data
updates["Request/Pending/"+snap.key] = null;
firebase.database().ref().update(updates);
});
此方法的重要优点是所有这些更新要么都成功,要么都不成功。因此,旧位置不可能有任何残留数据。
关于javascript - 移动节点后,从 prevRef 到 newRef 如何更新 Firebase 内的特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53511314/
我使用下面的代码将特定数据从 ('Pending') 节点复制到 ('Approved') 节点。它仅复制包含数据的username 和request_status 的节点。复制后如何更新 useri
我是一名优秀的程序员,十分优秀!