我目前在null检查方面遇到了一个大问题,我不明白为什么...
问题所在的代码段:
getUser(data).then(result => {
console.log(result);
console.log(result == null);
if (result == null) {
console.log("IS NULL");
} else {
console.log(NULL);
}
}
这里是getUser
供参考:
function getUser(uid) {
return firebase
.database()
.ref(`/users/${uid}`)
.once("value")
.then(snapshot => {
console.log(snapshot);
if (snapshot === null) return null;
return snapshot;
});
}
snapshot
可以是和这样的对象:
[16:34:18] Object {
[16:34:18] "email": "user@example.com",
[16:34:18] "walletAmount": 0,
[16:34:18] }
或null
但是我的状况未如预期那样正常工作。
如果snapshot
等于前面提到的对象,我将得到以下输出:
console.log(result == null); // false
但是当snapshot
为空时,输出仍然是:
console.log(result == null); // false
我尝试了很多类似Object.propotype.hasOwnProperty.call(result, "email")
的事情,但都没有成功...
关于, 托马斯
答案 0 :(得分:1)
通过致电做到了
if (result.val() && result.val().email)
我认为因为snapshot
是Firebase中的一个特殊对象,我无法通过使用hasOwnProperty(也许是由于继承)解决问题的任何一种方式!