我有一个与Firebase实时连接的应用程序。我可以使用复选框将数据设置为Firebase,但是在基于Firebase数据设置属性检查时面临着问题。
我的JS代码
firebase.database().ref('0001/switches/001').on('value', snapshot => {
var chValue = snapshot.val();
console.log(chValue);
if (chValue == true) {
document.getElementById("sch1").checked = true;
} else {
document.getElementById("sch1").checked = false;
}
});
我使用console.log()确认chValue正在基于Firebase数据工作,但是,我不知道为什么...
此
document.getElementById("sch1").checked = true;
不起作用!如果我把它放在firebase函数之外,那么我可以找到原因。
此工作
firebase.database().ref('0001/switches/001').on('value', snapshot => {
var chValue = snapshot.val();
consolo.log(chValue);
if (chValue == true) {
document.getElementById("sch1").checked = true;
} else {
document.getElementById("sch1").checked = false;
}
});
//Outside firebase function
document.getElementById("sch1").checked = true;
答案 0 :(得分:0)
我找到了一个很好的解决方案,例如:
state = { swichStatus: undefined }
switch1() {
firebase.database().ref('0001/switches/001').set(1);
}
toggleSwitch = (value) => {
this.setState({ swichStatus: value })
if (value == true) {
firebase.database().ref('0001/switches/001').set(true);
}
else {
firebase.database().ref('0001/switches/001').set(false);
}
}