从Reactnative实时从Firebase获取数据

时间:2020-06-03 10:05:01

标签: javascript reactjs firebase react-native firebase-realtime-database

我有一个初始化firebase数据库的js文件,我想连接到firebase实时数据库并获取相关信息。

我正在调用的函数:

get getName() {
var ref = firebase.database().ref('variable').child('variable').child('variable');

ref.on('value', gotData, errData);



function gotData(data) {

    console.log(data.val());
    console.log(data.val().ogrIsim + 'getname calisti');
    console.log(String(data.val().ogrIsim));
    this.setState({
        name: (data.val().ogrIsim)
    });
    // return String(data.val().ogrIsim);
}

function errData(err) {
    console.log('errorrrr!!!' + err);
}

}

console.log(data.val()。[variableName]);我将控制台打印为一行中的字符串,但是我无法更改它,因为它说在setstate e中存在一个不是字符串的对象。我应该如何进行?

和错误消息:

enter image description here

1 个答案:

答案 0 :(得分:1)

发生错误消息是因为this内部的gotData与外部的含义不同。

有很多方法可以解决此问题,但是在这种情况下,显式bind()可能最简单:

var ref = firebase.database().ref('variable').child('variable').child('variable');

ref.on('value', gotData, errData);

function gotData(data) {
  this.setState({ name: (data.val().ogrIsim) });
}.bind(this);
function errData(err) {
  console.log('errorr' + err);
}

有关更多信息,请参见How to access the correct `this` inside a callback?