Firebase查询WHERE

时间:2016-06-08 09:23:46

标签: ios objective-c filter firebase firebase-realtime-database

也许我错过了什么,但我正在研究用于下一个项目的后端。 Firebase现在处于最前沿。

但是,在使用Firebase查询时,似乎无法进行传统的SQL查询,因为它是一个JSON数据库?比如WHERE foo ......似乎仅限于EQUALS。

如果我想做WHERE foo小于或超过的事情,请不要告诉我必须抓取所有数据并在本地过滤?

或者是因为JSON比SQL数据库轻得多,它只能获取分页的大块数据然后在本地过滤更加可行吗?

我希望你能为我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:3)

而不是 Where子句,您可以使用几种方法来过滤firebase数据......

您检查latest Doc.,过滤数据部分

过滤数据

要过滤数据,您可以在构造查询时将任何限制或范围方法与order-by方法结合使用。

DesiredCapabilities capabilities =DesiredCapabilities.android();
capabilities.setCapability("device","Android");
            capabilities.setCapability("deviceName","hammerhead");
            capabilities.setCapability("platformName","Android");
            capabilities.setCapability("appPackage","com.android.calculator2");
            capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            driver.findElement(By.xpath("//*[@resource-id='com.android.calculator2:id/digit_7']")).click();
            driver.findElement(By.xpath("//*[@resource-id='com.android.calculator2:id/op_add']")).click();
driver.startActivity("com.android.browser","com.android.browser.BrowserActivity");
  

与order-by方法不同,您可以组合多个限制或范围功能。例如,您可以组合queryStartingAtValue和queryEndingAtValue方法将结果限制为指定的值范围。

答案 1 :(得分:2)

是的,在Firebase中你确实找不到典型的SQL查询,比如简单地执行where something > somevalue,但是它们提供的选项类似于基本的sql子句。

例如

如果我们有where height > 3

之类的查询

我们在firebase中这样做

 FQuery *queryRef = [[ref queryOrderedByChild:@"height"] queryStartingAtValue:@3];

传统文档非常详细地解释了这一点 https://www.firebase.com/docs/ios/guide/retrieving-data.html