Javascript Firebase数据库:搜索特定项目

Javascript Firebase数据库:搜索特定项目,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在建立一个订购工具。每个订单都有一个id,这是我使用push方法从Firebase获得的唯一标识符。我的问题是:假设我在页面中放置了一个标记为“Order”的文本字段,旁边有一个名为“Find”的按钮 检索(甚至构造)这些数据的最佳方法是什么?我熟悉Firebase数据库的索引。基本上,我希望能够搜索特定的订单。可能有数千个。下面的答案正确吗 var wantedOrder=firebase.database().ref('orders').equalTo(“我的输入文本”) 火基规则 {

我正在建立一个订购工具。每个订单都有一个
id
,这是我使用
push
方法从Firebase获得的唯一标识符。我的问题是:假设我在页面中放置了一个标记为“Order”的文本字段,旁边有一个名为“Find”的按钮

检索(甚至构造)这些数据的最佳方法是什么?我熟悉Firebase数据库的索引。基本上,我希望能够搜索特定的订单。可能有数千个。下面的答案正确吗

var wantedOrder=firebase.database().ref('orders').equalTo(“我的输入文本”)

火基规则

{
  "rules": {
    "orders": {
      ".indexOn": ["name"]
    }
  }
}

我可以向你推荐两种方法来实现你所追求的目标

  • (如果您有大量数据,则效率不高)您可以通过“Orders”节点的ValueEventListener获取整个数据,然后循环搜索关键字的每一组数据

  • 看看这个链接,他们的数据集和你的相似。


  • 我可以向你推荐两种方法来实现你所追求的目标

  • (如果您有大量数据,则效率不高)您可以通过“Orders”节点的ValueEventListener获取整个数据,然后循环搜索关键字的每一组数据

  • 看看这个链接,他们的数据集和你的相似。

  • equalTo()
    startAt()
    endAt()
    之前,需要一个orderBy*()类型的函数

    在你的特殊情况下,我会使用

    var wantedOrder = firebase.database().ref('orders').orderByChild('name').equalTo('yourText').on(listener you want.....)
    
    这将返回与您的搜索完全匹配的

    如果您想有更灵活的方法,请使用
    startAt()
    endAt()
    equalTo()
    startAt()
    endAt()
    之前需要一个orderBy*()类型的函数

    在你的特殊情况下,我会使用

    var wantedOrder = firebase.database().ref('orders').orderByChild('name').equalTo('yourText').on(listener you want.....)
    
    这将返回与您的搜索完全匹配的


    如果您想采用更灵活的方式,请使用
    startAt()
    endAt()

    您不能直接使用equalto。。。。您需要先应用and orderBy*()方法,然后才能直接使用equalto。。。。在此之前,您需要应用和orderBy*()方法抱歉,在电话中。。。无法帮助缩进我不知道是否需要在firebase规则中添加
    $order
    。。。如果不行的话,我就回去。你的规则很好。。。你调用的方法是错误的。。。在firebase文档中查看更多高级查询,它将帮助您。抱歉,在电话中。。。无法帮助缩进我不知道是否需要在firebase规则中添加
    $order
    。。。如果不行的话,我就回去。你的规则很好。。。你调用的方法是错误的。。。在firebase文档中查看更多高级查询,它将帮助您。