我是一名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");


由于QueryDatabaseReference的基类,因此您也可以将侦听器附加到Query

r.addChildEventListener(new ChildEventListener() { ...

10-04 16:41