如何在特定时间读取单个firebase数据库值

时间:2016-08-29 14:17:36

标签: javascript firebase firebase-realtime-database

我需要在特定时间读取firebase数据库中的值。此外,即使dataBases voteValue稍后更改,我也不希望更新读取值。虽然如果它更容易,我想我会选择它。

我的firebase数据库中有很多时间段 - 它们恰好是几秒钟的时间。我已经调用了这些timeSlots,并且我在每个时间段都有一个投票值。

所以在下面的例子中,假设时间是@ 11秒。我想读一下那个timeSlot的投票值为8

enter image description here

目前我有:

var ref = new Firebase ('https://aB8ppi-f0h02.firebaseio.com/web/data');
function myFunction (x) {
  ct = player.getCurrentTime()
  timeSlot = Math.round(ct)    
  var voteData = ref.child("vid1");
  voteData.orderByValue().equalTo(timeSlot).on("value", function(dataSnapshot) {
    var Yval =  dataSnapshot.vote + x;
  };

//然后将dBase更新为新值

voteData.child("slot" + timeSlot).set({
    slot: timeSlot,
    vote: Yval
});

};

Firebase似乎很好地设置了onChange事件等,但我不需要这里。注意:我不希望客户端必须登录/验证。

您能否建议我如何检索,更改并为firebase数据库设置新值?非常感谢。

1 个答案:

答案 0 :(得分:0)

好吧就把它搞定了。我发现我需要清理写入dBase的文字以及它的读数。我希望有一天能帮助别人:)

现在写作功能

render: function(){
    var PHOTODATA = this.state.PHOTODATA
    var uniqueCategories = PHOTODATA.map(function (photo) {
        return photo.tag; // tag is a list of tags...
    }).reduce(function (uniqueList, someTags) {
        return uniqueList.concat(
          someTags.filter(function (thisTag) {
            return !uniqueList.some(function(uniqueTag) {
              return uniqueTag.id === thisTag.id && uniqueTag.taglevel === thisTag.taglevel
            });
          })
        );
    }, 
[]
);

和阅读功能:

ref.child("vid1/slot"+timeSlot+"/vote").on("value",function(snapshot){
    slotVal = (snapshot.val());
}, function (errorObject) {
    console.log("the read failed: " + errorObject.code);
});
ref.child("vid1/slot"+timeSlot).set({
    vote: slotVal + x
});