Я пытаюсь получить данные из базы данных Firebase и назначить значения переменным состояния.
Вот метод:
findStudent = async(e) => {
e.preventDefault()
var _studentNumber = this.state.StudentNumber
var _uid = this.state.uid
// get reference to database location we want
const loc = firebase.database().ref('/students/' + _uid + '/' + _studentNumber)
console.log(loc.toString())
loc.once('value', snapshot => {
snapshot.forEach(child => {
this.setState({
BlockID: child.val().blockchainKey,
CourseCode: child.val().courseCode,
CourseName: child.val().courseName,
StudentName: child.val().studentName
})
})
})
}
Вот переменные состояния:
state = {
user: '',
uid: '',
StudentName: '',
StudentNumber: '',
CourseCode: '',
CourseName: '',
BlockID: '',
studentArray: [],
}
И вот где я их показываю:
<div className="row">
<div className="col-sm">
{this.state.StudentName}
</div>
<div className="col-sm">
{this.state.StudentNumber}
</div>
<div className="col-sm">
{this.state.CourseCode}
</div>
<div className="col-sm">
{this.state.CourseName}
</div>
<div className="col-sm">
{this.state.BlockID}
</div>
</div>
Когда я console.log child.val (), я вижу правильные значения, но они не устанавливаются в переменные состояния.