Android 如何仅读取一个键以从Firebase数据库获取值?
我只想在Android 如何仅读取一个键以从Firebase数据库获取值?,android,firebase-realtime-database,Android,Firebase Realtime Database,我只想在5A4WDqhepiOwy4fDKM9OzocHNdX2获取值(地址和电话) 这是我在Firebase数据库中的数据库: "users" : { "5A4WDqhepiOwy4fDKM9OzocHNdX2" : { "address" : "123456", "displayname" : "han", "email" : "phamvanhan68@gmail.com", "id" : "5A4WDqhepiOwy4fDKM9
5A4WDqhepiOwy4fDKM9OzocHNdX2获取值(地址和电话)
这是我在Firebase数据库中的数据库:
"users" : {
"5A4WDqhepiOwy4fDKM9OzocHNdX2" : {
"address" : "123456",
"displayname" : "han",
"email" : "phamvanhan68@gmail.com",
"id" : "5A4WDqhepiOwy4fDKM9OzocHNdX2",
"phone" : "1234567890"
},
"iFFzXSnwMDTWXbxKIFmnVuw18Wf1" : {
"address" : "han",
"displayname" : "han",
"email" : "111111@gmail.com",
"id" : "iFFzXSnwMDTWXbxKIFmnVuw18Wf1",
"phone" : "0123456789"
}
}
这是我的密码
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference();
FirebaseUser user = mAuth.getCurrentUser();
idUser = user.getUid();
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
DataSnapshot dataSnapshotTyperService =dataSnapshot.child("users");
getInfor(dataSnapshotTyperService);
Log.d("kiemtra12345", idUser+"");
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
及
void getInfor(DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
用户uInfo=新用户();
uInfo.setDisplayname(ds.child(idUser).getValue(User.class.getDisplayname());
setPhone(ds.child(idUser.getValue(User.class.getPhone());
uInfo.setAddress(ds.child(idUser).getValue(User.class.getAddress());
Log.d(“kiemtra123451”,“showData:name:”+uInfo.getDisplayname());
Log.d(“kiemtra123452”,“showData:email:”+uInfo.getEmail());
Log.d(“kiemtra123453”,“showData:phone_num:+uInfo.getPhone());
ArrayList数组=新的ArrayList();
add(uInfo.getDisplayname());
add(uInfo.getEmail());
add(uInfo.getPhone());
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数组);
lvtest.setAdapter(适配器);
Log.d(“kiemtraaaaaaaaa”,lvtest+”);
}
}
您能否通过编辑此问题发布您的代码?请告诉我们你试图做什么。我再次上传,你可以看到上面!你能帮助我吗?请注意,您的问题中包含了JSON树的图片。请将其替换为实际的JSON文本,您可以通过单击中的导出JSON链接轻松获取。将JSON作为文本使其可搜索,允许我们轻松使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。您的JSON包含user
(单数),而您的代码使用dataSnapshot.child(“用户”)
(复数)。您能通过编辑此问题发布您的代码吗?请告诉我们你试图做什么。我再次上传,你可以看到上面!你能帮助我吗?请注意,您的问题中包含了JSON树的图片。请将其替换为实际的JSON文本,您可以通过单击中的导出JSON链接轻松获取。将JSON作为文本使其可搜索,允许我们轻松使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。您的JSON包含user
(单数),而您的代码使用dataSnapshot.child(“用户”)
(复数)。
void getInfor (DataSnapshot dataSnapshot){
for(DataSnapshot ds : dataSnapshot.getChildren()){
User uInfo = new User();
uInfo.setDisplayname(ds.child(idUser).getValue(User.class).getDisplayname());
uInfo.setPhone(ds.child(idUser).getValue(User.class).getPhone());
uInfo.setAddress(ds.child(idUser).getValue(User.class).getAddress());
Log.d("kiemtra123451", "showData: name: " + uInfo.getDisplayname());
Log.d("kiemtra123452", "showData: email: " + uInfo.getEmail());
Log.d("kiemtra123453", "showData: phone_num: " + uInfo.getPhone());
ArrayList<String> array = new ArrayList<>();
array.add(uInfo.getDisplayname());
array.add( uInfo.getEmail());
array.add(uInfo.getPhone());
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
lvtest.setAdapter(adapter);
Log.d("kiemtraaaaaaaaaaaaaaa",lvtest+"");
}
}
FirebaseAuth mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
DatabaseReference myRef = mFirebaseDatabase.getReference().child("user/Harry");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User myUser = dataSnapshot.getValue(User.class);
Log.d("FB", myUser.getAddress());
Log.d("FB", myUser.getPhone());
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled", databaseError.toException());
}
});