简单的Android / Firebase orderByChild / equalTo

时间:2018-03-06 19:13:15

标签: android firebase firebase-realtime-database

我怀疑这很容易,但我不能按照我的意愿去工作。我正在使用我的Firebase数据库的查询信息引用数据库引用。下面的代码工作正常,但我不能在Match_01中进行硬编码(这完全是为了让代码正常工作)。

String getArgument = getArguments().getString("matchid");
            final DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Matches").child("Match_01");

我需要做的是使用传递给片段的matchID并使用equalTo而不是引用最终的子节点。

final DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Matches").orderByChild("gameID").equalTo(getArgument);

但这不起作用,我无法换掉orderByChild引用的最后一个子引用。

感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

我从您的问题中假设Matches节点的孩子具有您想要动态引用的ID作为密钥。

然后,您需要orderByKey而不是orderByChild。这应该有效:

final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Matches");
Query q=ref.orderByKey().equalTo(getArgument);

使用orderByChild时,查询会根据此节点的属性匹配节点。换句话说,您的尝试将适用于具有以下结构的集合:

- Matches
  - $key
    - gameID: "Match_01"