Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase搜索查询提供不同的结果_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript Firebase搜索查询提供不同的结果

Javascript Firebase搜索查询提供不同的结果,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在开发搜索功能。我的实时数据库中有2000多种产品的列表 我试着用3个查询搜索洗发水。但是没有一个查询返回所需的带有字符串“Shappo”的产品名称 但是query1&2返回的产品如下图所示,在“产品名称”节点中没有“洗发水” 我不明白为什么会这样 代码 const databaseRef = firebase.database().ref('S01/Products'); // Search Query 1 - Shows Different Product (Refe

我正在开发搜索功能。我的实时数据库中有2000多种产品的列表

我试着用3个查询搜索
洗发水
。但是没有一个查询返回所需的带有字符串“Shappo”的产品名称

但是
query1&2
返回的产品如下图所示,在“产品名称”节点中没有“洗发水”

我不明白为什么会这样

代码

    const databaseRef = firebase.database().ref('S01/Products');

    // Search Query 1 - Shows Different Product (Refer above image)
      var query = databaseRef.orderByChild("productName").startAt("Shampoo");

    // Search Query 2 - Shows Different Product (Refer above image)
      var query = databaseRef.orderByChild("productName").endAt("Shampoo");

 // Search Query 3 - Shows Different Product (Refer above image)
        var query = databaseRef.orderByChild("productName").startAt("Shampoo").endAt("~");

 // Search Query 3 - Returns no Products
      var query = databaseRef.orderByChild("productName").equalTo("Shampoo");

 // Search Query 3 - Returns no Products
        var query = databaseRef.orderByChild("productName").startAt("Shampoo").endAt("Shampoo" + "~");

      query.once("value")
        .then(function (snapshot) {
          snapshot.forEach(function (childSnapshot) {

            var t = $('#products_table').DataTable();

            var key = childSnapshot.key;

            var MID = childSnapshot.child("productMID").val();
            var SID = childSnapshot.child("productSID").val();
            var ProductID = childSnapshot.child("productID").val();
            var name = childSnapshot.child("productName").val();
            var unit = childSnapshot.child("productUnit").val();
            var productMRP = childSnapshot.child("productMRP").val();
            var price = childSnapshot.child("productSellingPrice").val();
            var buying_price = childSnapshot.child("productBuyingPrice").val();
            var productStatus = childSnapshot.child("productStatus").val();

            var row = "";

            t.row.add(['<td class="cell-60 responsive-hide"></td><td class="cell-300">', '<td>' + name + '</td>', '<td>' + unit + '</td>', '<td tabindex="1">' + productMRP + '</td>', '<td tabindex="2">' + price + '<\/td>', '<td tabindex="3">' + buying_price + '<\/td>', productStatus]).node().id = ProductID;
          });
        });
const-databaseRef=firebase.database().ref('S01/Products');
//搜索查询1-显示不同的产品(参见上图)
var query=databaseRef.orderByChild(“productName”).startAt(“洗发水”);
//搜索查询2-显示不同的产品(参见上图)
var query=databaseRef.orderByChild(“productName”).endAt(“洗发水”);
//搜索查询3-显示不同的产品(参见上图)
var query=databaseRef.orderByChild(“productName”).startAt(“洗发水”).endAt(“~”);
//搜索查询3-不返回任何产品
var query=databaseRef.orderByChild(“产品名称”).equalTo(“洗发水”);
//搜索查询3-不返回任何产品
var query=databaseRef.orderByChild(“productName”).startAt(“洗发水”).endAt(“洗发水”+“~”);
查询一次(“值”)
.then(功能(快照){
snapshot.forEach(函数(childSnapshot){
var t=$(“#产品_表”).DataTable();
var key=childSnapshot.key;
var MID=childSnapshot.child(“productMID”).val();
var SID=childSnapshot.child(“productSID”).val();
var ProductID=childSnapshot.child(“ProductID”).val();
var name=childSnapshot.child(“productName”).val();
var unit=childSnapshot.child(“productUnit”).val();
var productMRP=childSnapshot.child(“productMRP”).val();
var price=childSnapshot.child(“productSellingPrice”).val();
var buying_price=childSnapshot.child(“productBuyingPrice”).val();
var productStatus=childSnapshot.child(“productStatus”).val();
var行=”;
t、 行。添加([“”,+名称+“”,+单位+“”,+产品MRP+“”,+价格+“”,+购买价格+“”,产品状态])node().id=ProductID;
});
});
这样的查询:

var query = databaseRef.orderByChild("productName").startAt("Shampoo");
将生成按
productName
字母顺序排列的产品列表,从以“Shappo”开头的名字开始,或从以“Shappo”开头的任何字符串开始。它不要求产品名称中包含“洗发水”。此外,如果名称不以“洗发水”开头,则不包括名称中嵌入“洗发水”的产品

例如,“我最喜欢的洗发水”将被排除在外,因为“M”<“S”。任何以字母大于“S”开头的产品名称都将包括在内,“超级肥皂”也将包括在内,因为“Su”跟在“Sh”后面

Firebase API不支持查询值中“包含”的文本(SQL:
其中productName如%Shappo%
)。更多详细信息,请点击ElasticSearch链接,作为高级文本搜索选项