我正在尝试从Firebase获取数据,以将其显示在TextView
中。实际上,我是android新手,有人可以告诉我这是什么问题吗?
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference("https://videoanimation-a931e.firebaseio.com/");
auth = FirebaseAuth.getInstance();
String userId = auth.getCurrentUser().getUid();
DatabaseReference uidRef = rootRef.child("Person").child(userId);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if(user !=null) {
String name = user.getName();
String email = user.getEmail();
String designation = user.getDesignation();
textViewName.setText(name);
textViewEmail.setText(email);
textViewDesignation.setText(designation);
}else {
Toast.makeText(ProfileActivity.this, "user is null", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
}
答案 0 :(得分:0)
我点知道我的答案是否可以帮助您,但是请看一下我的代码片段,这种方法如何获得价值firebase实时数据库子用户价值
//Getting Uid user
mAuth = FirebaseAuth.getInstance();
if (mAuth.getCurrentUser() != null) {
mUserRef = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
mUserRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String name = ""+dataSnapshot.child("nama").getValue().toString();
String jabatan = ""+dataSnapshot.child("jabatan").getValue().toString();
String image = ""+dataSnapshot.child("image").getValue().toString();
display_name.setText(""+name);
display_address.setText(""+jabatan);
if (!image.equals("default") && image!= null){
Glide.with(getApplicationContext()).load(image).listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
}).into(circleImageView);
}else {
}
mUserRef.child("role").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String srole = dataSnapshot.getValue().toString();
preferenceManager.simpanRole(srole);
setdashbourUI(preferenceManager.ambilRole());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
您可以查看HERE !!
的完整实施代码答案 1 :(得分:0)
此片段
User user = dataSnapshot.getValue(User.class);
尝试更改为此
User user = dataSnapshot.toObject(User.class);
开始使用
private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();