也许我错过了什么,但我正在研究用于下一个项目的后端。 Firebase现在处于最前沿。
但是,在使用Firebase查询时,似乎无法进行传统的SQL查询,因为它是一个JSON数据库?比如WHERE foo ......似乎仅限于EQUALS。
如果我想做WHERE foo小于或超过的事情,请不要告诉我必须抓取所有数据并在本地过滤?
或者是因为JSON比SQL数据库轻得多,它只能获取分页的大块数据然后在本地过滤更加可行吗?
我希望你能为我解决这个问题。感谢。
答案 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