过滤实时数据库数据

时间:2018-07-13 19:14:42

标签: javascript firebase-realtime-database

我有以下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语句,该函数返回了我想要的值。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找这个:

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

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