Javascript 如果在Firebase中未找到语句变量==null?
我无意中听到了这个if语句,我不知道为什么它不起作用 在我的firebase数据库中不存在反收集Javascript 如果在Firebase中未找到语句变量==null?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我无意中听到了这个if语句,我不知道为什么它不起作用 在我的firebase数据库中不存在反收集 return db.ref('Global/Cuisine').once('value').then(cuisineList =>{ console.log(`Value cuisineList --> ${JSON.stringify(cuisineList)}`); //print Value cuisineList --> null if(cui
return db.ref('Global/Cuisine').once('value').then(cuisineList =>{
console.log(`Value cuisineList --> ${JSON.stringify(cuisineList)}`);
//print Value cuisineList --> null
if(cuisineList == null){
console.log(`Doesn't exists`);
//Do stuff
}else{
console.log(`Exists`);
//do stuff
}
})
并始终打印存在
。。。为什么?,code
的值为null
。
甚至,当我使用其他if语句时
if(!cuisineList)
或
打印已存在
但是。。。当我得到firebase快照的值时,它会工作
return db.ref('Global/Cuisine').once('value').then(snapcuisineList =>{
let cuisineList = snapcuisineList.val();
console.log(`Valor cuisineList --> ${JSON.stringify(cuisineList)}`);
if(cuisineList == null)
...
除了firebase
.val()
的技术解释之外,该值为null,为什么不起作用?我对firebase没有太多经验,但是现在来看,我认为您必须使用.val()
才能获得null
。而JSON.stringify
给出null
的原因是尝试检查typeof(cuisineList)
你能记录什么是cuisineList
吗?如果它是一个列表,或者任何对象,它们总是true
,即使是空的,你必须测试它是否是空的,而不是null
烹饪列表是否为空,请参阅我代码的第二行。记录变量,而不是它的字符串化版本,以查看类型(或者按照@NiVeR的建议检查typeof)。是的,这是正确的。谢谢,问候
return db.ref('Global/Cuisine').once('value').then(snapcuisineList =>{
let cuisineList = snapcuisineList.val();
console.log(`Valor cuisineList --> ${JSON.stringify(cuisineList)}`);
if(cuisineList == null)
...