反应本地获取实时数据库数据不工作(firebase)?
问题描述:
我是新来的react-native,并试图用firebase构建一个简单的应用作为后端。反应本地获取实时数据库数据不工作(firebase)?
我已经进行了注册,登录,注销并设置了一个移动号码。我正在尝试实时读取移动号码数据。获取数据的功能如下:
_listenForMobileNumberChanges(userId, callback) {
let userMobilePath = "/user/" + userId + "/details";
firebase.database().ref(userMobilePath).on('value', (snapshot) => {
var mobile = "";
if (snapshot.val()) {
mobile = snapshot.val().mobile
}
callback(mobile)
});
}
在渲染功能,我把一个ListView和调用的函数:
<ListView
dataSource={this.state.mobile}
renderRow={() => {this._listenForMobileNumberChanges(this.state.userId}}
/>
我知道我错过了在ListView调用回调函数参数,但我不知道要添加到参数中,有谁能帮忙吗?
答
而不是使用一个ListView使用的TextInput,而不是在检测TextInput的onChangeText属性作出这样的metode打电话:
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(usermobileNumber) => this._listenForMobileNumberChanges()}
value={this.state.usermobileNumber}
/>
解析无参数只是修改了Methode这样:
_listenForMobileNumberChanges() {
alert('inside the listen function');
if(firebase.auth().currentUser) {
let userId = firebase.auth().currentUser.uid;
let userMobilePath = "/user/" + userId + "/details";
firebase.database().ref(userMobilePath).on('value', (snapshot) => {
var mobile = "";
if (snapshot.val()) {
mobile = snapshot.val().mobile
}
this.setState ({usermobileNumber: mobile});
});
} else {
this.setState ({usermobileNumber: ''});
}
}