циклический просмотр данных базы - PullRequest
0 голосов
/ 26 февраля 2020

Привет! Я пытаюсь получить доступ к вложенным данным в базе данных реального времени Firebase с помощью облачных функций, мои данные выглядят так:

{
  "RANGE1": {
    "left": 2,
    "overlayImage": "",
    "right": 1,
    "submittedInfo": {
      "left_1": {
        "TimeStamp": "2020-02-16 19:05:35",
        "horozontalAccuracy": 10,
        "latitude": 0000,
        "longitude": 0000
      },
      "left_2": {
        "TimeStamp": "2020-02-16 19:23:59",
        "horozontalAccuracy": 10,
        "latitude": 0000,
        "longitude": 0000
      },
      "left_3": {
        "TimeStamp": "2020-02-20 19:35:28",
        "horozontalAccuracy": 10,
        "latitude": 0000,
        "longitude": 0000
      },
      "right_1": {
        "TimeStamp": "2020-02-16 19:08:30",
        "horozontalAccuracy": 10,
        "latitude": 0000,
        "longitude": 0000
      }
    }
  },
  "RANGE2": {
    "left": 1,
    "overlayImage": "",
    "right": 1,
    "submittedInfo": {
      "left_1": {
        "TimeStamp": "2020-02-12 22:07:11",
        "horozontalAccuracy": 5,
        "latitude": 0000,
        "longitude": 0000
      },

      "right_1": {
        "TimeStamp": "2020-02-12 22:36:36",
        "horozontalAccuracy": 11.721012922544011,
        "latitude": 0000,
        "longitude": 0000
      }
    }
  }
}

, и у меня есть функция, которая должна фильтровать и выравнивать эти данные. Но я не могу понять, как проникнуть в узлы. все, что я пытаюсь сделать, кажется, я застреваю при доступе к [объекту объекта] или typeof () возвращает строку, когда она должна быть JSON объект все еще

 admin.database().ref(".../range").once('value').then((snapshot) => {
    var flagInfo = [];
    snapshot.forEach((range) => {
        console.log("range is : " + range) // [object Object]
        console.log("range[submitted] " + range['submittedInfo']) // undefined???
        // what I need to do is something like: 
        range["submittedInfo"].forEach((flagData) => { 
            console.log(flagData.key)
            console.log(flagData["latitude"]) // and so on for the rest of the keys
        }) // end 
})

1 Ответ

1 голос
/ 26 февраля 2020

Пожалуйста, посмотрите на эту ссылку. В части forEach есть довольно хороший пример.

Вы должны использовать методы child() и val(). В данный момент у меня нет тестовой площадки, но это должно быть что-то вроде range.val() для получения диапазона и range.child('submittedInfo').val() для получения данных submitInfo, но вы должны выяснить, как именно это сделать. Если вам не удастся, дайте мне знать, я постараюсь реализовать это на моей стороне.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...