[英]Not getting Child Data back from Firebase in android
Here is the following structure of database in firebase 这是firebase中数据库的以下结构
Code 码
I am getting the current user and then checking the whether the id is null or not and get reference of child and getting key of child. 我正在获取当前用户,然后检查id是否为null并获取child的引用并获取child的键。 Further more i am getting null in string variable where i tried to get values.
此外,我在尝试获取值的字符串变量中获取了null。
private void Check_data() {
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user.getUid() != null) {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("user_info");
DatabaseReference myRef1=myRef.child(user.getUid());
myRef1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//GenericTypeIndicator<Map<String, String>> genericTypeIndicator = new GenericTypeIndicator<Map<String, String>>() {};
// Map<String, String> map = dataSnapshot.getValue(genericTypeIndicator);
String name = dataSnapshot.child("name").getValue(String.class);
String email = dataSnapshot.child("email").getValue(String.class);
Name.setText(name);
email_txt.setText(email);
/* if (image != null) {
Glide.with(MainActivity.this)
.load(image)
.centerCrop()
.into(photo_url);
}*/
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
In your database, you have random ids that are generated using push()
在数据库中,您具有使用
push()
生成的随机ID
You should first when adding data to the database use the userid
: 在将数据添加到数据库时,应首先使用
userid
:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();
the userid
is unique for each user. 该
userid
对于每个用户都是唯一的。
then to retrieve the data inside the userid
: 然后在
userid
内检索数据:
DatabaseReference myRef = database.getReference("user_info");
DatabaseReference myRef1=myRef.child(userid);
myRef1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue(String.class);
String email = dataSnapshot.child("email").getValue(String.class)
}
});
When the id has -
at the beginning it means its a random id. 如果ID具有
-
开头,则表示其为随机ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.