首页 > 解决方案 > 过滤实时数据库数据

问题描述

我有以下 firebase 数据库。我想过滤并列出 deliveryDuration 值为“45”的订单

"orders" : [ null, {
    "comment" : "",
    "date" : "2018-07-09 10:07:18",
    "deliveryDuration" : "45",
    "delivery_address" : "",
    "item" : [ {
      "available" : true,
      "category" : "Dessert",
      "details" : "(Hausgemacht)",
      "name" : "Warmer Topfenstrudel",
      "price" : 3.9,
      "quantity" : 1
    } ],
    "orderVerified" : false,
    "telefon" : "",
    "userID" : "xyc@gmail.com",
    "userName" : ""
  }, {
    "comment" : "",
    "date" : "2018-07-10 10:07:33",
    "deliveryDuration" : "30",
    "delivery_address" : "",
    "item" : [ {
      "available" : true,
      "category" : "Dessert",
      "details" : "(Hausgemacht)",
      "name" : "Warmer Topfenstrudel",
      "price" : 3.9,
      "quantity" : 1
    } ],
    "orderVerified" : false,
    "telefon" : "",
    "userID" : "xyc@gmail.com",
    "userName" : ""
  }, {
    "comment" : "",
    "date" : "2018-07-10 10:13:13",
    "deliveryDuration" : "10",
    "delivery_address" : "",
    "item" : [ {
      "available" : true,
      "category" : "Spezialitäten",
      "details" : "Schweinschnitzel mit Parmesan gebacken auf Spaghetti Napoli",
      "name" : "Piccata Milanese",
      "price" : 12.9,
      "quantity" : 1
    } ],
    "orderVerified" : false,
    "telefon" : "",
    "userID" : "xyc@gmail.com",
    "userName" : ""
  }
}

我尝试编写以下函数:

getNewItems: function (order) {
       if (db.ref('orders').child(order).child('deliveryDuration').equalTo(45)){
       return db.ref('orders').child(order).child('deliveryDuration')
      }}

我怎样才能得到过滤的对象?我在想我写了一个 if-else 语句,该函数返回我正在寻找的值。

标签: javascriptfirebase-realtime-database

解决方案


我想你正在寻找这个:

getNewItems: function (order) {
   return db.ref('orders').orderByChild('deliveryDuration').equalTo(45));
}}

此 Firebase 查询获取您查询的位置的每个子节点,按deliveryDuration属性对其进行排序,然后过滤以仅获取等于45.


推荐阅读