如何使用Firebase云函数解析嵌套键

如何使用Firebase云函数解析嵌套键,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我有一个数据结构,它有多个嵌套键,key1和key2 key1和key2的值未知,通常为某些GUID 如何从该结构中获取数据 "key1": { "key2": { "name1":"value1", "name2":"value2", "sub1": { "sub1_name1":"sub1_value1",

我有一个数据结构,它有多个嵌套键,key1和key2

key1和key2的值未知,通常为某些GUID

如何从该结构中获取数据

"key1":
    {
      "key2": {
           "name1":"value1",
           "name2":"value2",
           "sub1":    
               {
                  "sub1_name1":"sub1_value1",
                  "sub2_name2":"sub2_value2"  
               },
           "name3":"value3"
      }
   }, .... more records following
我有以下代码提取一些数据,但之后我无法查询数据:

admin.database().ref('table_x/').once('value', (snapshot) => {

   console.log(snapshot.key); //table_x

   snapshot.forEach(function(child) {

        var key1 = child.key; // this gives key1

        // get key 2
        // get key 2's values, children
像这样的

for (key in child) {
  for (innerkey in child[key]) {
    console.log(innerkey);
  }
}

使用库develiantjs(),它们有一个很好的xslt模板实现,可以拉入数据集

一旦能够循环遍历数据结构,就可以使用库提供的xpath工具来运行特定的查询

JSON.search示例

 data = [{
"key1": {
  "key2": {
    "name1": "value1",
    "name2": "value2",
    "sub1": {
      "sub1_name1": "sub1_value1",
      "sub2_name2": "sub2_value2"
    },
    "name3": "value3"
  }
}}],
res1 = JSON.search(data, "//*[contains(name(), 'key')]/."),
res2 = JSON.search(data, "//*[contains(text(), 'sub')]/..");