Android Firebase getKey()会返回子项

时间:2016-07-25 20:25:50

标签: android firebase firebase-realtime-database

我有一个Firebase数据库,如下所示:

appname:
  chat:
    [ID]:
      child1:value
      child2:value

我这样查询:

DatabaseReference ref = rootReference.child("chat").child([ID]);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    if (dataSnapshot.exists()) {
      long index = Long.parseLong(dataSnapshot.getKey());
    }
  }

问题是,这个查询不起作用,因为dataSnapshot.getKey()返回" child1"而不是ID。它对dataSnapshot.getRef().getKey()做了同样的事情。如果我使用dataSnapshot.getRef().getParent().getKey(),我会得到#34;聊天"背部。如何取回DataSnapshot的密钥?我现在非常困惑。

1 个答案:

答案 0 :(得分:0)

事实证明问题不在上面的代码中。进一步进入ValueEventListener我又进行了另一次查询,并意外将听众设置为this而不是MyClass.thisValueEventListener中的this正在寻找其他内容,因此查询不兼容。