相关疑难解决方法(0)

如何在firebase上执行sql"LIKE"操作?

我正在使用firebase进行数据存储.数据结构如下:

products:{
   product1:{
      name:"chocolate",
   }
   product2:{
      name:"chochocho",
   }
}
Run Code Online (Sandbox Code Playgroud)

我想对这些数据执行自动完成操作,通常我会像这样编写查询:

"select name from PRODUCTS where productname LIKE '%" + keyword + "%'";
Run Code Online (Sandbox Code Playgroud)

因此,对于我的情况,例如,如果用户输入"cho",我需要同时带上"chocolate"和"chochocho".我考虑将所有数据放在"产品"块下,然后在客户端进行查询,但这可能需要大量数据库的内存.那么,我该如何执行sql LIKE操作呢?

谢谢

javascript firebase firebase-realtime-database

42
推荐指数
2
解决办法
3万
查看次数

Firebase和索引/搜索

我正在考虑使用Firebase作为一个应用程序,人们应该使用全文搜索几千个对象的集合.我喜欢提供仅客户端应用程序的想法(不必担心托管数据),但我不知道如何处理搜索.数据将是静态的,因此索引本身并不是什么大问题.

我假设我需要一些运行查询的额外服务并返回Firebase对象句柄.我可以在某个固定的位置启动这样的服务,但后来我不得不担心它的可用性广告可扩展性.虽然我不希望这个应用程序有太多的流量,但它可以在几千个并发用户中达到峰值.

建筑思想?

firebase firebase-realtime-database

27
推荐指数
1
解决办法
1万
查看次数

可以在firebase中包含搜索查询吗?

我试过这个:

Query firebaseSearchQuery = 
myRef.orderByChild("from").startAt(searchText).endAt(searchText+"\uf8ff");
Run Code Online (Sandbox Code Playgroud)

但我想要这样的东西

Query firebaseSearchQuery = 
myRef.orderByChild("from").contains(searchText);
Run Code Online (Sandbox Code Playgroud)

有可能的 ?

android firebase firebase-realtime-database

8
推荐指数
1
解决办法
3978
查看次数

Firebase:如何在游戏中匹配对手?

我正在实施社交象棋游戏.每个用户都可以创建一个新游戏,他们会等到系统找到他们的对手.

当用户创建游戏时,他们会指定约束:他们想要玩的颜色,以及对手的最低国际象棋等级.

对手可以匹配也可以不匹配.例如,以下两个对手将匹配:

// User 1 with rating 1700              // User 2 with rating 1800
// creates this game                    // creates this game
game: {                                 game: { 
  color: 'white',                         minRating: 1650
  minRating: 1600                       }
}                                       // User did not specify a preferred color,
                                        // meaning they do not care which color to play
Run Code Online (Sandbox Code Playgroud)

因此,如果用户1是系统中的第一个用户,并创建了他们的游戏,他们将等待.用户2创建游戏后,应立即与用户1匹配.

另一方面,以下两个对手将无法比赛,因为他们都想打白棋.在这种情况下,两者都应该等到其他人用color: 'black'(或未指定颜色)创建游戏,并且minRating符合要求.

// User 1 with rating 1700              // User 2 with rating 1800
// creates this game                    // creates this …
Run Code Online (Sandbox Code Playgroud)

algorithm nosql firebase firebase-realtime-database

5
推荐指数
2
解决办法
9188
查看次数

使用firebase实时数据库创建搜索功能

我想使用 firebase 实时数据库为我的应用程序创建一个搜索功能,类似于 facebook 搜索。

我做了一些研究并承认 Firebase 实时无法使用“文本包含”进行搜索。但我相信必须有某种方法来实现它,例如组合 startAt 或 endAt。

我需要一些关于最佳实践的建议。

数据库结构将如下所示:

Restaurant
-->RandomID
---->name: 'Good Restaurant'
---->address:
---->desc:
-->RandomID
---->name: 'Dixon Lee Restaurant'
---->address:
---->desc:
-->RandomID
---->name: 'MCD'
---->address:
---->desc:
Run Code Online (Sandbox Code Playgroud)

编辑 我不确定 startAt 和 endAt 如何工作。如果我使用 startAt(3) 是否应该返回 3 及以上?如果我将 startAt 与字符串一起使用会怎样?就像我遇到的下面的问题:

firebase.database().ref('/restaurants').orderByChild('name').startAt('Good').on('value',snap=>{
      console.log(snap.val())
    })
Run Code Online (Sandbox Code Playgroud)

上述查询将返回: 在此输入图像描述

我正在考虑使用 startAt/endAt 实现“文本包含”,它将找到以关键字开头/结尾的字段的特定值。不确定这是否是 startAt/endAt 的用法。

firebase angularfire firebase-realtime-database

3
推荐指数
1
解决办法
4810
查看次数

Firebase数据库 - 如何执行前缀通配符查询

我想在Firebase数据库上执行通配符查询,并且不知道库是否支持这一点. - (我猜它没有.)

我想要一个网络流量尽可能少的最佳解决方案,假设数据集是数百万条记录.

数据集(使用前缀通配符):

user_id:
         id_001123:      
                   name: "java"
         id_002124:
                   name: "objective-c"
         id_003125:
                   name: "swift"
Run Code Online (Sandbox Code Playgroud)

代码如何使用通配符检索记录id_002124名称字段,您只有一部分ID.例如."%124".

预期结果为id_002124,名称为"objective-c"

任何移动语言示例代码都很棒.(目标C /夫特/爪哇)

android objective-c firebase swift firebase-realtime-database

1
推荐指数
1
解决办法
2173
查看次数

如何使用子字符串查询 firebase 键

我想查询包含输入的 Firebase。例如在下面的数据库结构中,我想查询包含“4140”的所有节点,所以我使用此代码

在此处输入图片说明

  var catref = Cataloguedatabase.ref("/Listing Search/");


    return catref.once('value').then(function(snapshot){
    snapshot.forEach(childSnapshot => { 

    let snapdb = childSnapshot.val();
    let key = childSnapshot.key;
    //use ES6 includes function
    if(key.includes(schname)){  

    console.log(childSnapshot.val());
    var searchresults = childSnapshot.val();
    var container = document.getElementById('listing_gallery');
                      // container.innerHTML = '';

    var productCard = `
        <div class="col-sm-3">
        <div class="card" onclick="gotoproduct(this);" id="${key}">
                              `
         container.innerHTML += productCard;
                    }
                })
              })
Run Code Online (Sandbox Code Playgroud)

这行得通,但问题是它首先查询所有子节点并对数组进行排序。这对于子节点很少的节点来说是可以的,但是当它有数千个子节点时,它变得不切实际。有没有我只能查询包含 firebase 中的值的键,如果没有,我还能如何实现?

javascript firebase firebase-realtime-database

0
推荐指数
1
解决办法
3234
查看次数