按间隔更新firebase条目 [英] update firebase entries on an interval

查看:51
本文介绍了按间隔更新firebase条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够在一小段时间内更新firebase条目中的某些值。我不知道如何做到这一点,但尝试了以下内容:

I want to be able to update certain values in a firebase entry on a minute interval. I am not sure how to do this but have tried the following:

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的主分支上。

I am using moment.js for time differences (I am trying to make an updating train schedule). All of the entries are on the main branch of firebase.

推荐答案

使用 setInterval()每X英里秒触发一次你的功能。

Use setInterval() to trigger your function every X mile seconds you want.

使用 firebase.database.ref()访问要更新的数据库节点。

Use firebase.database.ref() to access your database node you want to update.

使用 .update()更新数据库节点值。

Use .update() to update the database node value.

使用 firebase.database.ServerValue.TIMESTAMP 来获取服务器时间。由于不同的时区,使用客户端时间戳是不安全的。

Use firebase.database.ServerValue.TIMESTAMP to get server time. Using client timestamp is not safe due different timezones.

有了这个,您可以编写您的函数。它应该看起来像这样

With this you can write your function. It should look something like this

const servetTime = firebase.database.ServerValue.TIMESTAMP;
setInterval(() => {
  database.ref('myNode').on('value',(snapshot) => {
    snapshot.val() &&
    const updatedDate = snapshot.val().storageTime ? snapshot.val().storageTime - serverTime : serverTime;
    snapshot.ref().update({ storageTime: updatedDate })
  });
}, 5000);

仅将此代码视为示例,而不是复制/粘贴解决方案。

Consider this code just as an example, not a copy/paste solution.

希望它有所帮助。

这篇关于按间隔更新firebase条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆