我是Android Firebase的新手。我正在尝试将我的Firebase数据库中的图像保存到我的Android应用程序中片段。
更具体地说,我想搜索当前登录的用户的Id。在找到Id之后,我想获取图像字段的内容(图像是用户的孩子)并保存在我的应用程序的imageview上。
我的主要目的是为用户创建个人资料图片。
这是我的Firebase数据库:
{
"Users" : {
"Tc2N9FA0uhTFZuMRNkRSHgiaGQ22" : {
"imageurl" : "https://firebasestorage.googleapis.com...
"userid" : "Tc2N9FA0uhTFZuMRNkRSHgiaGQ22"
}
}
}
我在应用程序中的代码是(我只显示了我试图保存图像的部分):
public class Tab1MyProfile extends Fragment {
ImageView userImageProfileView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab1_my_profile, container, false);
userImageProfileView = (ImageView) rootView.findViewById(R.id.profile_pic);
mAuth = FirebaseAuth.getInstance();
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
{
for(DataSnapshot userDetails : dataSnapshot.getChildren()) {
userImageProfileView = userDetails.child("Name").getValue());
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return rootView;
}
}
这是我的错误:
userImageProfileView = userDetails.child("Name").getValue());
错误是:
不兼容的类型:
必需:找到android.widget.ImageView:java.lang.Object
答案 0 :(得分:0)
假设Users
节点是Firebase数据库的直接子节点,要从特定用户获取这些值,请使用以下代码:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userIdRef = rootRef.child("Users").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String imageurl = dataSnapshot.child("imageurl").getValue(String.class);
String userid = dataSnapshot.child("userid").getValue(String.class);
Log.d("TAG", imageurl + " / " + userid);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userIdRef.addListenerForSingleValueEvent(eventListener);
您的输出将是:
https://firebasestorage.googleapis.com... / Tc2N9FA0uhTFZuMRNkRSHgiaGQ22