当前位置: 首页 > 面试题库 >

firebase查询方法startAt()采用区分大小写的参数

扈俊健
2023-03-14
问题内容

这段代码工作正常。

我想要的唯一改进是 -当我传递“ Pi”时,它将获取所有以“ Pi”名称开头的项目对象,但是当我输入“ pi”时,它什么也不返回!

这意味着我希望此方法startAt(itemName)不区分大小写。因此,在那种情况下,“ Pi”或“ pi”等任何东西(小写或大写)都可以使用。

//5. Get menu items from RestaurantMenu
this.getMenuItemFromRestaurantMenu = function(callback, itemName) {
  var ref_restMenu = firebase.database().ref()
  .child('Restaurants')
  .child('Company')
  .child('menu');

  //Check if item is already exist!
  ref_restMenu.orderByChild("itemName").startAt(itemName).once("value", function(snapshot) {
    var data = snapshot.val(); 
    if(data !== null) {
      //We will ger item name and restaurant id from this data.
      callback(data);
    } else {
      //Item not found in globalMenu
      console.log("%c Item not found in Global Menu", "color: red");
    }
  });
}

问题答案:

Firebase当前不支持小写搜索。处理此问题的最佳方法是将小写字符串与原始字符串一起存储,然后查询小写字符串。

var ref_restMenu = firebase.database().ref()
    .child('Restaurants')
    .child('Company')
    .child('menu');
var item = "Apple Pie";
// Or however you store data
ref.push({
    itemName: item,
    itemNameLower: item.toLowerCase(),
    ...
})

然后您可以这样查询:

//Check if item is already exist!
// query itemNameLoweruse and .toLowerCase()
ref_restMenu.orderByChild("itemNameLower").startAt(itemName.toLowerCase()).once("value", function(snapshot) {
    var data = snapshot.val(); 
    if(data !== null) {
        //We will ger item name and restaurant id from this data.
        callback(data);
    } else {
        //Item not found in globalMenu
        console.log("%c Item not found in Global Menu", "color: red");
    }
});

这确实需要复制数据,但是到目前为止,还没有一个更容易预见的选项。



 类似资料:
  • 问题内容: 我想从Firebase数据库中获取信息,但是它是区分大小写的查询,并且我不希望它区分大小写,是否有一种方法可以使查询在AndroidStudio中不区分大小写, 这是查询代码 问题答案: 使用时,这就是您从函数中学到的东西。它以升序或降序返回数据,并且您无法使用扩展查询自定义结果。 但是,您可以尝试其他可能更昂贵的东西。以数组的形式获取所有想要的子项,并保存Child2及其键。然后,您

  • 问题内容: 我正在使用Flask-SQLAlchemy从用户数据库中查询;但是,虽然 will return doing returns 我想知道是否有一种以不区分大小写的方式查询数据库的方法,以便第二个示例仍然返回 问题答案: 你可以使用过滤器中的或功能来完成此操作: 另一种选择是使用而不是进行搜索:

  • 问题内容: 有谁知道如何使用Postgres 7.4进行不区分大小写的搜索/查询? 我在考虑RegEx,但不确定如何执行此操作,或者不确定是否有函数/标志或可以添加查询的内容? 我正在使用PHP连接并执行查询。 因此,我正在寻找匹配地址信息的方法。 例子: 有什么想法吗? 问题答案: 使用,例如: 文件资料。 或者,您可以使用或,例如:

  • 我的目标是所有下面的URI都应该工作 https://rest/xyz?sort=name https://rest/xyz?排序=名称 https://rest/xyz?过滤器=名称=值 https://rest/xyz?Filter=name=value 为了实现这一点,我创建了自定义过滤器,该过滤器覆盖了传递给过滤器链的HttpServlet请求。以下是此方法的链接: http://foru

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: 使用Spring CrudRepository查询;我想使用“名称”属性选择“设备类型”实体。但是下面的查询选择区分大小写的权利。我如何使其不区分大小写。谢谢。 问题答案: 就像评论中提到的@Peter一样,只需添加: 请参阅文档,以获取方法名称中所有受支持的关键字的列表。