【发布时间】:2021-08-04 10:27:30
【问题描述】:
我的数据库结构是:
{
"Users" : {
"KTTbTIq2A4aZcjKPSYlZhrBiDwD3" : {
"Email" : "g2@g.com",
"ID" : "KTTbTIq2A4aZcjKPSYlZhrBiDwD3",
"UserName" : "GokulNew2"
},
"ovxZPZeyy2VlZUP1K0vv9VtiThu1" : {
"Email" : "g1@g.com",
"ID" : "ovxZPZeyy2VlZUP1K0vv9VtiThu1",
"UserName" : "GokulNew1"
}
}
}
在这个结构中,如果“UserName”与“GokulNew1”匹配,我需要将“ID”(自动生成)作为“ovxZPZeyy2VlZUP1K0vv9VtiThu1”获取。我需要将 ID 存储在 String ID 中。
我的代码是,
private DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
String Id;
String Name = "GokulNew1";
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
recyclerId= snapshot.child("ID").toString();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
throw error.toException();
}
});
【问题讨论】:
-
我真的不明白接受的答案将如何工作?你能提供一些细节吗?提供的代码确实不完整。 “在此处检查 id”如何工作?此外,使用 addListenerForSingleValueEvent 有什么意义?这种方法,现在被认为是旧的有利于最近添加的新 get() 方法? “不要忘记向 Firebase 规则添加查询”是什么意思?在我看来,这个答案可能只会让未来的访客感到困惑。这根本没有任何意义!
标签: java android firebase firebase-realtime-database