(node:11254)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):TypeError:无法读取null的属性'l
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(node:11254)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):TypeError:无法读取null的属性'l相关的知识,希望对你有一定的参考价值。
我正在尝试在NodeJS上查询我的Firebase数据库
var admin = require("firebase-admin");
var serviceAccount = require('/path/app-firebase-adminsdk-bs45c-5a33370488.json');
var firebase = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://app.firebaseio.com/"
});
var fcmToken = "";
var ref = firebase.database().ref("users");
ref.once("value")
.then(function(snapshot) {
var data = snapshot.val();
console.log(data);
for(var i=0; i<data.length; i++){
if(phone == '9786733361'){
fcmToken = data[i].fcmToken
}
}
console.log(fcmToken);
});
我跑了node database.js
并继续得到
(node:11254) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'length' of null
(node:11254) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
如何进行并进一步调试?
答案
DataSnapshot的val()可以为null,表示the object is empty。
因此,你对data.length
的调用将失败,因为你试图在undefined
/ null
上调用它。
在这一点上,很难对在线存储的数据做出假设,但你应该仔细检查你在once
中听到的事件确实存在。
以上是关于(node:11254)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):TypeError:无法读取null的属性'l的主要内容,如果未能解决你的问题,请参考以下文章
UnhandledPromiseRejectionWarning:此错误源于在没有 catch 块的情况下抛出异步函数内部
2021牛客暑期多校训练营3 B.Black and white 最小生成树