Javascript 如果在Firebase中未找到语句变量==null?

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

我无意中听到了这个if语句,我不知道为什么它不起作用

在我的firebase数据库中不存在反收集

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)
        ...