(узел: 11254) UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отклонения: 1): TypeError: Невозможно прочитать свойство 'length' с нулевым значением - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь запросить мою базу данных Firebase на NodeJS, у меня есть

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.    

Как можно пойти дальше и отладить это дальше?

1 Ответ

0 голосов
/ 08 января 2019

DataSnapshot * val () может быть нулевым, что означает, что объект пуст .

Следовательно, ваш вызов на data.length не будет выполнен, поскольку вы пытаетесь позвонить на undefined / null.

На данный момент трудно делать предположения о данных, хранящихся в сети, но вам следует дважды проверить, действительно ли событие, которое вы слушаете в once, действительно существует.

...