Android 如何在gridview中显示Firebase照片?
我有Firebase用户和他们的帖子。我想从帖子中获取帖子图像URL,下载它们并在gridview中显示它们 这是我的代码:Android 如何在gridview中显示Firebase照片?,android,gridview,firebase,firebase-realtime-database,firebase-storage,Android,Gridview,Firebase,Firebase Realtime Database,Firebase Storage,我有Firebase用户和他们的帖子。我想从帖子中获取帖子图像URL,下载它们并在gridview中显示它们 这是我的代码: public class Profile extends Fragment { private CircleImageView mprofilePic; private TextView mUsername, mBio; private GridView mGridView; private Uri mImageUri = null; priva
public class Profile extends Fragment {
private CircleImageView mprofilePic;
private TextView mUsername, mBio;
private GridView mGridView;
private Uri mImageUri = null;
private FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
private StorageReference mStorageImage;
private DatabaseReference mdatabaseUsers = FirebaseDatabase.getInstance().getReference().child("Users");
private FirebaseAuth mAuth;
private FirebaseUser mCurrentUser;
private DatabaseReference userposts;
private static final int GALLERY_REQUEST = 1;
public static Profile newInstance() {
return new Profile();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View profileView = inflater.inflate(R.layout.fragment_profile, container, false);
mAuth = FirebaseAuth.getInstance();
mCurrentUser = mAuth.getCurrentUser();
userposts = FirebaseDatabase.getInstance().getReference().child("Users").child(mCurrentUser.getUid()).child("posts");
mprofilePic = (CircleImageView) profileView.findViewById(R.id.profile_picture);
mUsername = (TextView) profileView.findViewById(R.id.profile_username);
mBio = (TextView) profileView.findViewById(R.id.profile_bio);
mGridView = (GridView) profileView.findViewById(R.id.gridview);
mdatabaseUsers.child(firebaseUser.getUid()).child("image")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String imageUrl = dataSnapshot.getValue().toString();
Glide.with(getContext()).load(imageUrl).into(mprofilePic);
//mprofilePic.setImageURI(Uri.parse(imageUrl));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mdatabaseUsers.child(firebaseUser.getUid()).child("Name").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String username = dataSnapshot.getValue().toString();
mUsername.setText(username);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return profileView;
}
}
我需要的是获取当前用户并获取子(帖子)和子(图片),然后下载它并将其放在网格视图中,然后运行到下一篇帖子并获取第二张帖子图片,依此类推
有什么建议吗?谢谢 1。声明这些
Firebase.setAndroidContext(this);
Firebase ref = new Firebase(YOUR_FIREBASE_URL);
2。您可以使用addChildEventListener
ref.child("Users/w3.....")
.child("posts")
.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String s) {
Map<String, Object> value = (Map<String, Object>) snapshot.getValue();
String img = value.get(Constants.chnl_msg).toString(); // your image url
}
@Override
public void onChildChanged(DataSnapshot snapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
ref.child(“用户/w3…”)
.儿童(“员额”)
.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onchildaded(DataSnapshot快照,字符串s){
Map value=(Map)snapshot.getValue();
字符串img=value.get(Constants.chnl\u msg).toString();//图像url
}
@凌驾
公共void onChildChanged(DataSnapshot快照,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
3。或为SingleValueEvent添加Listener
ref.child("Users/w3.....")
.child("posts").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, Object> value = (Map<String, Object>) dataSnapshot.getValue();
String img = value.get(Constants.chnl_msg).toString(); // your image url
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
ref.child(“用户/w3…”)
.child(“posts”).addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Map value=(Map)dataSnapshot.getValue();
字符串img=value.get(Constants.chnl\u msg).toString();//图像url
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});