(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 块的情况下抛出异步函数内部

Go语言·听说你想让程序运行的更快?

2021牛客暑期多校训练营3 F.24dian 暴搜dfs

2021牛客暑期多校训练营3 B.Black and white 最小生成树

2021牛客暑期多校训练营3 C.Minimum grid 二分图最大匹配

java中,Node node = (Node) value; 其中Node是接口,这个语句是啥意思啊?谢谢。