如何查询Firebase返回属性值等于A或B的对象?

Xi Xiao

我在Firebase中的数据为:

video 1
 - lang: en

video 2
 - lang: zh

video 3
 - lang: fi
....

我想查询并返回具有lang值en的对象列表zh

我发现是用

  orderByChild: "lang",
  equalTo: "en"

但是此查询仅返回“ en”的对象,如何返回“ en”或“ zh”的对象?

亚历克斯·莫莫

由于Firebase是NoSQL数据库,因此没有WHERE子句听起来像这样:

SELECT * FROM Video WHERE lang='en' OR lang='zh'

不幸的是,Firebase不允许多个查询可以满足您的目的。相反,您可以使用等于same reference两次所需语言的排序查询这些查询应如下所示:

.yourRef.orderByChild("lang").equalTo("en");
.yourRef.orderByChild("lang").equalTo("zh");

现在,您可以合并两个查询的结果并在用户端显示它们。如果您需要用两种以上的语言来查询数据库,那么我建议您稍微改变一下数据库的结构。您需要创建另一个名为的节点languages,您可以在其中添加每种特定语言的可用视频。新结构应如下所示:

Firebase-root
    |
    --- languages
           |
           --- en
           |    |
           |    --- video1: true
           |
           --- zh
           |    |
           |    --- video2: true
           |
           --- fi
                |
                --- video3: true
                |
                --- video4: true

这样,您可以将收听者添加到所需的语言并查看所有可用的视频。正如弗兰克所说,它将比普通查询更快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何确定Javascript数组是否包含属性等于给定值的对象?

如何使用Firebase嵌套查询设置类的属性值?

C#-检查列表是否包含属性等于值的对象?

如何使用Firebase查询返回布尔值?

从对象数组中,如何返回具有最高属性“ a”的对象的属性“ b”?

查询以返回每个字段等于真实值的时间

如何获取Firebase对象并设置为等于本地对象?

如何获得对象值,该属性值等于变量值

空对象仍如何返回其属性值?

Android Studio Firebase查询搜索返回对象

如何通过单个属性的值从数组返回对象

如何返回基于属性值排序的类对象列表

根据属性返回对象值

如何遍历复杂的Json对象并在每个属性上执行等于某个值的操作

如何放置角度模板以检查特定数组是否包含对象的属性等于某个值?

如何查询基于多个等于的Firebase

如何在mongoDB查询中从对象返回单个属性?

如何设置对象值等于变量内的对象值

如何从Rails查询返回对象

查询对象数组不包含等于字符串值的属性的地方

Javascript对象:如何使用值返回属性?

Firebase查询等于在Swift中不返回值

Firebase Android 无法根据对象值查询项目 - 返回所有值

如何从返回对象的函数中获取属性的值?

我如何检查值属性是否等于对象键,如果它等于键值并为其添加一个类

如何遍历所有属性并将值作为对象返回

如何替换 A 列中的值,其中 B 列等于值?

如何查询数组字段至少有一个属性等于“X”的对象元素的所有文档?

如何从对象列表中返回属性值列表