【发布时间】:2019-06-01 18:35:24
【问题描述】:
单击按钮后,我需要从 Firebase 实时数据库中获取昵称值。所以我在按钮的onClick 方法中创建了singleValueListner()。但它不起作用。
我试过调试它,但代码没有进入singleValueEventListener()
Button getName = (Button)findViewById(R.id.getName);
getName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("Member").child(user.getUid());
db.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText(data.child("nickname").getValue().toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
数据库 JSON 结构:
{
"Member" : {
"1Zuv6VZZ0kPluwc33f1QQQ7DZD93" /* UID */ : {
"-LgIHwiAjfuh5pjK7wzl" : {
"actualScore" : 0,
"bestScore" : 0,
"email" : "some@email.com",
"nickname" : "Vitek",
"season" : 0
}
}
}
}
数据库结构: https://drive.google.com/file/d/15B4b6Rb_WAiS6fioI9gItyijrbDiVjzJ/view
我需要得到昵称,我认为这写得很好,但不是。那么,有什么问题呢?
【问题讨论】:
-
您在问题中包含了指向 JSON 树图片的链接。请将其替换为实际的 JSON 作为文本,您可以通过单击 your Firebase Database console 的溢出菜单 (⠇) 中的 Export JSON 链接轻松获得。将 JSON 作为文本使其可搜索,让我们可以轻松地使用它来测试您的实际数据并在我们的答案中使用它,一般来说这只是一件好事。
-
第一步是停止忽略错误并实施
onCancelled。最小实现是:public void onCancelled(@NonNull DatabaseError databaseError) { throw databaseError.toException(); } -
@FrankvanPuffelen okey
标签: java android database firebase firebase-realtime-database