简单的Android / Firebase orderByChild / equalTo

问题描述 投票:0回答:1

我怀疑这很容易,但我不能按照我的意愿去工作。我正在使用我的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引用的最后一个子引用。

所有帮助表示赞赏。

android firebase firebase-realtime-database
1个回答
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"
© www.soinside.com 2019 - 2024. All rights reserved.