我是一名Android开发人员,但这并不是很重要。我也接受其他编程语言的解决方案。
我在/ root / answers下有一个“答案”的集合。这里的数据是使用push方法存储的,因此每个孩子都有唯一的ID。每个孩子都有一个名为“ user_ref”的字段,它是一个简单的字符串。我需要使用给定字符串与“ user_ref”匹配的所有答案填充列表。
所以我建立了我的DatabaseReference与:
DatabaseReference r = FirebaseDatabase.getInstance().getReference(ANSWERS_REF)
.startAt("id_123")
.endAt("id_123")
.getRef();
它有效,但是每次该数据库引用返回所有答案时,不仅会选择
最佳答案
该问题是由于在语句末尾调用getRef()
引起的。这将返回您查询的位置的DatabaseReference
,因此就是所有答案。
DatabaseReference allAnswers = FirebaseDatabase.getInstance().getReference(ANSWERS_REF);
Query r = allAnswers.startAt("id_123")
.endAt("id_123");
由于
Query
是DatabaseReference
的基类,因此您也可以将侦听器附加到Query
。r.addChildEventListener(new ChildEventListener() { ...