我是一名Android开发人员,但这并不重要。我也接受其他编程语言的解决方案。
我收集了#34;答案"在/ root / answers下。这里使用push方法存储数据,因此每个子节点都有唯一的id。每个孩子都有一个名为" user_ref"这是一个简单的字符串。我需要使用所有答案填充我的列表,其中给定的字符串与" user_ref"匹配。 所以我用:
构建了我的DatabaseReferenceDatabaseReference r = FirebaseDatabase.getInstance().getReference(ANSWERS_REF)
.startAt("id_123")
.endAt("id_123")
.getRef();
它有效,但每次此数据库引用都会返回所有答案,而不仅仅是选择
答案 0 :(得分:2)
尝试使用equalTo("id_123")
代替startAt()
和endAt()
(我假设id_123是user_ref的值)。即如下,
DatabaseReference r = FirebaseDatabase.getInstance().getReference(ANSWERS_REF)
.orderByChild("user_ref")
.equalTo("id_123")
.getRef();
希望它有所帮助!
答案 1 :(得分:1)
问题是由于在语句结束时调用d
引起的。这将返回您查询的位置的getRef()
,这就是所有答案。
DatabaseReference
由于DatabaseReference allAnswers = FirebaseDatabase.getInstance().getReference(ANSWERS_REF);
Query r = allAnswers.startAt("id_123")
.endAt("id_123");
是Query
的基类,您还可以将监听器附加到DatabaseReference
。
Query