Firebase实时数据库中的值返回未定义

时间:2020-02-12 05:26:56

标签: javascript firebase firebase-realtime-database

我从firebase获取值有问题。每当我尝试从vehicle1的孙辈那里获取值时,它将返回undefined

var get_alert = '';
var get_lstCk = '';

var queryRef = firebase.database().ref('users').child('Fred').child('vehicles').child('vehicle1');
queryRef.on('value', function(querySnapshot) {
      querySnapshot.forEach(function(query) {
            query.forEach(function(snapshot) {

                 var val = snapshot.val();                                //returns 2020-04-07 and 2020-02-07
                 get_alert = val.battery_and_cables_start_nextDate_alert  //returns undefined
                 get_lstCk = val.battery_and_cables_start_last_checked    //returns undefined

             });
      });
});

我的数据库如下:

-users
    |
    |
    --Fred
        |
        |
        --vehicles
              |
              |
              --vehicle1
                    |
                    |
                    --alert
                    |    |
                    |    |
                    |    --battery_and_cables_start_nextDate_alert: "2020-04-07"
                    |
                    --last_checked
                         |
                         |
                         --battery_and_cables_start_last_checked: "2020-02-07"

我必须分别对alertlast_checked进行查询吗?

1 个答案:

答案 0 :(得分:0)

这两个值都是alert和last_checked的子项,因此请在成功快照中尝试以下代码

var get_alert = '';
var get_lstCk = '';

var queryRef = firebase.database().ref('users').child('Fred').child('vehicles');
queryRef.on('value', function(querySnapshot) {
      querySnapshot.forEach(function(query) {
            query.forEach(function(snapshot) {

                 var val = snapshot.val();                                //returns 2020-04-07 and 2020-02-07
                 get_alert = val.battery_and_cables_start_nextDate_alert  //returns undefined
                 get_lstCk = val.battery_and_cables_start_last_checked    //returns undefined

             });
      });
});