Firebase 数据库 Rest Api:如何使用未知节点进行 OrderBy

Firebase Database Rest Api : How to OrderBy with Unknown nodes

我正在使用 Firebase Database Rest Api 并且我有一个显示新闻的应用程序,我想要一种使用 ( Views) 计算每个 post,同时, 所以我正在寻找一种方法来按(服务器端)最高浏览量对所有新闻进行排序。

我的数据结构是这样的: Main/News/Categories/Education/PostId/

我的 json :

{
  "Main" : {
    "News" : {
      "Categories" : {
        "Education" : {
          "-Mn7-ZxkUPO01ifhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 5
          },
          "-Mn7-ZxkUPO01ifhtp11En" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 5
          },
          "-Mn7-ZxkUPO0112ifhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 12
          },
          "-Mn7-ZxkUPO01dxifhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 545
          },
          "-Mn7-ZxkUPO01sdifhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 5
          },
          "-Mn7-ZxkUPO01ifddhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 200
          },
          "-Mn7-ZxkUPO01ifdshtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 1
          },
          "-Mn7-ZxkUPO01ifhtdxpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 223
          },
          "-Mn7-ZxkUPO01ifhewtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 451
          },
          "-Mn7-ZxkUPO01idsdfhtpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 532
          },
          "-Mn7-ZxkUPO01ifh2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 1500
          },
          "-Mn7-ZxkUPOd01ifh2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 45
          },
          "-Mn7-ZxkUPO01ifh21tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 2
          },
          "-Mn7-ZxkUPO01ifh2dstpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 4
          },
          "-Mn7-ZxkUPO01ifh2txpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 4
          },
          "-Mn7-ZxkUPO01ifhds2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 2
          },
          "-Mn7-ZxkUPO01iddfh2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 33
          },
          "-Mn7-ZxkUPO01idxfh2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 52
          },
          "-Mn7-ZxkUPO01idsdfh2tpEn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 1
          },
          "-Mn7-ZxkUPO01ifh2tpEdsn" : {
            "Text" : "some text",
            "Title" : "some title",
            "Views" : 1000000
          }
        }
      }
    }
  }
}

有没有办法解决这个过程 最好的问候:)

为了能够通过 child 属性 通过 REST API query/order,您需要 define an index 属性在你的数据库规则中。

{
  "rules": {
    ...
    "Main": {
      "News": {
        "Categories": {
          "Education": {
            ".indexOn": "views"
          }
        }
      }
    }
  }
}

如果此处的任何节点名称在您的规则中是可变的,您也可以在此处 use a wildcard capture variable