我希望能够每隔一分钟更新一个 firebase 条目中的某些值。我不确定该怎么做,但尝试了以下方法:
var interval = setInterval(function(){
database.ref().on('value',function(snapshot){
snapshot.forEach(function(childSnapshot) {
var item = childSnapshot.val();
item.key = childSnapshot.key;
database.ref(item.key).update({ item.trainTimeLeft: moment(item.trainFrequency).subtract(moment(moment(Date.now())).diff(item.trainTimeStamp,"minutes"),"minutes") });
});
});
},60000);
我正在使用 moment.js 处理时差(我正在尝试更新火车时刻表)。所有条目都在 firebase 的主分支上。
最佳答案
使用 setInterval()
每隔 X 英里秒触发一次函数。
使用 firebase.database.ref()
访问您要更新的数据库节点。
使用.update()
更新数据库节点值。
使用 firebase.database.ServerValue.TIMESTAMP
获取服务器时间。由于时区不同,使用客户端时间戳并不安全。
有了这个你就可以写你的函数了。它应该看起来像这样
const serverTime = firebase.database.ServerValue.TIMESTAMP;
setInterval(() => {
database.ref('myNode').once('value',(snapshot) => {
const updatedDate = snapshot.val() && snapshot.val().storageTime ? snapshot.val().storageTime - serverTime : serverTime;
snapshot.ref().update({ storageTime: updatedDate })
});
}, 5000);
将此代码视为示例,而不是复制/粘贴解决方案。
希望对您有所帮助。
关于javascript - 定期更新 firebase 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250375/