Android 如何在gridview中显示Firebase照片?

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

我有Firebase用户和他们的帖子。我想从帖子中获取帖子图像URL,下载它们并在gridview中显示它们

这是我的代码:

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){
}
});