我怀疑这很容易,但我不能按照我的意愿去工作。我正在使用我的Firebase数据库的查询信息引用数据库引用。下面的代码工作正常,但我不能在Match_01中进行硬编码(这完全是为了让代码正常工作)。
String getArgument = getArguments().getString("matchid");
final DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Matches").child("Match_01");
我需要做的是使用已传递给片段的matchID并使用equalS而不是引用最终的子节点。
final DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Matches").orderByChild("gameID").equalTo(getArgument);
但这不起作用,我无法换掉orderByChild引用的最后一个子引用。
所有帮助表示赞赏。
我假设您的问题是Matches
节点的子节点具有您想要动态引用的id作为键。
然后,你需要orderByKey
而不是orderByChild
。这应该工作:
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Matches");
Query q=ref.orderByKey().equalTo(getArgument);
使用orderByChild
时,查询将根据此节点的属性匹配节点。换句话说,您的尝试将适用于具有以下结构的集合:
- Matches
- $key
- gameID: "Match_01"