React-Native:更新后读取保存在Firebase上的时间戳

时间:2019-04-27 11:09:30

标签: android react-native firebase-realtime-database getdate

每次我单击本机应用程序(android)上的按钮时,都会在 Firebase 服务器中更新时间戳。 问题在于,更新后,我想阅读并使用此时间戳设置我的状态。

这是我在Internet上找到的一些代码,它更新了 Firebase 上的日期,到达了第一个'then'区块,但是从此不再进行,因此永远不会到达第二个'then'区块,并且从不显示 alert(onlyDate);

我在Firebase上没有关于规则的错误,可以读写。

getDateServerFirebase = () => {

    let fb_currentTime = firebase.database().ref('currentTime/');
    fb_currentTime.update({ time: firebase.database.ServerValue.TIMESTAMP })
    .then(() => {
      fb_currentTime.once('value').then(function (data) {
          //console.log(data);
          let timestamp = data._value.time;
          let fullDate = new Date(timestamp);
          let onlyDate = fullDate.getDate() + '/' + (fullDate.getMonth()+1) + '/' + fullDate.getFullYear();

          alert(onlyDate);

        }, function serverTimeErr(err) {
          console.log('Could not reach to the server time !');
        });
    }, function (err) {
      console.log ('set time error:', err)
    });
  }

我尝试了这个问题,但仍然是相同的问题:写作品,不读

setData = () =>{
    firebase.database().ref('prova/').set({
      name:'luis',
      surname:'rew'
    }, function(error) {
      if (error) {
        // The write failed...
      } else {
        // Data saved successfully!
      }
    });
  }

  readData = () =>{
    firebase.database().ref('prova/')
    .once('value')
    .then((data)=>{
      alert(data);
    })
  }

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您从firebase函数访问响应的方式是通过运行val();。对结果起作用。

更改此行

let timestamp = data._value.time;

对此:

let timestamp = data.val().time;