我有一个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
的密钥?我现在非常困惑。
答案 0 :(得分:0)
事实证明问题不在上面的代码中。进一步进入ValueEventListener
我又进行了另一次查询,并意外将听众设置为this
而不是MyClass.this
。 ValueEventListener
中的this
正在寻找其他内容,因此查询不兼容。