当前位置: 首页 > 知识库问答 >
问题:

Firebase中AutoID下的查询

屠锦
2023-03-14
Results
- auto generated ID
  - auto generated ID
       value1: abc
       value2: def
let ref = FIRDatabase.database().reference().child("Results")

由于我不知道为了提供路径而自动生成的ID是否需要首先获取它们,以便在下面找到可以使用.queryeQualtoValue的值?如果是这样,我是不是只是抓取每个记录来查找值,而不是使用某种索引来只抓取value2等于值的记录?

最后,我希望查询返回value2等于某个值的所有“记录”。感觉我需要遍历每一条记录才能做到这一点。我觉得我在这里错过了什么。

更新:

self.ref.queryOrderedByKey().queryEqual(toValue: "def", childKey: "value2").observeSingleEvent(of: .value, with: {(snapshot) in
            print(snapshot) })
self.ref.queryOrdered(byChild: "value2").queryEqual(toValue: "def").observeSingleEvent(of: .childAdded, with: {(snapshot) in

如果我这样做:

self.ref.queryOrdered(byChild: "value2").observeSingleEvent(of: .childAdded, with: {(snapshot) in

它实际上会正确地对数据进行排序。无论如何,它都不能正确地使用“.value”进行排序,添加queryequal则不能像上面描述的那样工作。

共有1个答案

阎阎宝
2023-03-14

Firebase数据库查询的属性比运行属性的位置深一级。它们不能包含动态路径。

因为您是从/results查询,所以您可以在/results/$id/propertyname下对属性进行by/filter排序。

要允许对/results/$id1/$id2/propertyname下属性上的所有项进行排序/筛选,需要更改/增强数据结构。例如:

ResultValues
   -auto_generated_ID1_auto_generated_ID2_value1
       value: abc
       path: "auto generated ID/auto generated ID"
   -auto_generated_ID1_auto_generated_ID2_value2
       value: def
       path: "auto generated ID/auto generated ID"
ref.child("ResultValues")
   .queryOrderedByChild("value")
   .queryEqual(toValue: "def")
   .observeSingleEvent(of: .value, with: {(snapshot) in
            print(snapshot) })
 类似资料:
  • 问题内容: 我希望能够查询“ value2”等于某个特定值的位置。我从参考开始: 由于我不知道自动生成的ID才能提供路径,因此我需要先获取它们才能确定可以使用的值?如果是这样,我是否不仅要获取每条记录以查找值,还是要使用某种索引仅获取等于值的索引? 最后,我想查询一个返回等于某个值的所有“记录”的查询。感觉我需要遍历每条记录才能做到这一点。我觉得我在这里缺少什么。 更新: 我试过了: 这会因我在下

  • 我在数据库里有这个: 当教师添加一个类和一个节时,在节点下使用生成一个随机id。还有一个和一个节点,其中包含ID和属性。 学生加入了一个类,因此也在中创建了一个带有上述属性的随机id。 我使用以下代码: 我之所以有一个名字,是因为以后我想点击一个类,并获得该类中的名字列表。因此,如果我在ClassStudent节点中添加(已经完成了),那么在中没有studentname的情况下,我如何能够在单击时

  • 下面是我开始使用的代码,但我不确定该去哪里。看看这个问题的解决方案,我似乎需要根据下面的查询下载数据,然后在客户端对其进行排序。我似乎做不到的事

  • 当前的java代码将返回所有只有相同机场的子级。正如您所猜测的,当客户端需要排序的数据量比上面的测试数据大得多时,这是不可行的。如何更好地过滤Firebase端的数据?

  • 问题内容: 我正在使用Firebase函数和Firebase Firestore开发用于存储用户数据的API。 我想使用存储在其字段中的属性来查找文档。这是Firebase文档,其中说明了如何实现相同的功能。 我想处理两种情况 在没有文件的情况下 有两个以上具有当前条件的文件 如何处理以上两种情况? 问题答案: 按照上面的注释中的“讨论”,在Cloud Function中,您可以使用方法返回的方法

  • 问题内容: 我正在尝试在Firestore查询中实现逻辑OR运算符。 但这不是实现OR的正确方法。 我希望所有具有“制造商,检查者或批准者”角色的用户。 如何在Firestore查询中实施OR?Doc中没有任何内容。 问题答案: 编辑(2019年11月) 现在,CloudFirestore支持“IN”查询(公告),该查询使您可以执行一种OR查询,以查找具有相同字段中几个值之一的文档。 例如,上面的