Android 无法显示firebase数据库中的所有图像,我想在网格视图中显示一个id中的所有图像

Android 无法显示firebase数据库中的所有图像,我想在网格视图中显示一个id中的所有图像,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,这是我的主要活动onstart(),它导致适配器类。 我想显示当前用户id下的所有图像,如网格视图 如何在图像上方firebase的网格视图中显示所有用户图像帖子 @Override protected void onStart() { super.onStart(); FirebaseUser currentUser = mAuth.getCurrentUser(); uploads = new ArrayList<Blog>(); if (curr

这是我的主要活动onstart(),它导致适配器类。 我想显示当前用户id下的所有图像,如网格视图

如何在图像上方firebase的网格视图中显示所有用户图像帖子

@Override
protected void onStart() {
    super.onStart();
    FirebaseUser currentUser = mAuth.getCurrentUser();
    uploads = new ArrayList<Blog>();
    if (currentUser != null && !currentUser.isAnonymous()) {
        mUserf.child("online").setValue("true");
        mProgressbar.setMessage("Welcome.....");
        mProgressbar.show();
        mProgressbar.dismiss();
        ConnectivityManager check = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);

        NetworkInfo info = check.getActiveNetworkInfo();            //for checking whether app is connected to a network or not..
        if(info!=null && info.isConnected()) {
            //Toast.makeText(MainActivity.this, "network available", Toast.LENGTH_SHORT).show();
            firebaseAuth.addAuthStateListener(authStateListener);
            mProgressbar.setMessage("Fetching Blogs.....");
            mProgressbar.show();
            mProgressbar.dismiss();
            list = new ArrayList<>();
            adapter = new MyCustomAdapter(this,list,firebaseAuth,mdatabaseReference,likesdatabaseReference);
            recyclerView = (RecyclerView) findViewById(R.id.blog_list);
            recyclerView.setLayoutManager(new LinearLayoutManager(this));
            recyclerView.setAdapter(adapter);
            alpha = FirebaseDatabase.getInstance().getReference().child("Blog").child(mAuth.getCurrentUser().getUid());


            mchildEventListener = new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    mProgressbar.dismiss();


                    String j = dataSnapshot.getKey();
                    Log.v("GETKEYZZZ", j);
                    Blog friendlyMessage = dataSnapshot.getValue(Blog.class);
                    friendlyMessage.setPostkey(j);
                    list.add(friendlyMessage);
                    adapter.notifyDataSetChanged();

                }

                public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
                public void onChildRemoved(DataSnapshot dataSnapshot){}
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
                public void onCancelled(DatabaseError databaseError) {}
            };
            mquery.addChildEventListener(mchildEventListener);

        } else {
            //Toast.makeText(MainActivity.this, "No network available", Toast.LENGTH_SHORT).show();

            Toast.makeText(getApplicationContext(),"Please Check Your Internet Connection", Toast.LENGTH_LONG).show();
        }
       // mDatabseUsers.child("online").setValue("true");
    } else {
        Intent user1 = new Intent(MainActivity.this, LoginActivity.class);
        startActivity(user1);
    }
}
@覆盖
受保护的void onStart(){
super.onStart();
FirebaseUser currentUser=mAuth.getCurrentUser();
uploads=新建ArrayList();
if(currentUser!=null&&!currentUser.isAnonymous()){
mUserf.child(“在线”).setValue(“真实”);
setMessage(“欢迎…”);
mProgressbar.show();
mProgressbar.disclose();
ConnectivityManager check=(ConnectivityManager)getSystemService(CONNECTIVITY_服务);
NetworkInfo=check.getActiveNetworkInfo();//用于检查应用程序是否连接到网络。。
if(info!=null&&info.isConnected()){
//Toast.makeText(MainActivity.this,“网络可用”,Toast.LENGTH_SHORT.show();
firebaseAuth.addAuthStateListener(authStateListener);
setMessage(“获取博客…”);
mProgressbar.show();
mProgressbar.disclose();
列表=新的ArrayList();
adapter=新的MyCustomAdapter(此、列表、firebaseAuth、mdatabaseReference,如DatabaseReference);
recyclerView=(recyclerView)findViewById(R.id.blog_列表);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
recyclerView.setAdapter(适配器);
alpha=FirebaseDatabase.getInstance().getReference().child(“Blog”).child(mAuth.getCurrentUser().getUid());
mchildEventListener=new ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
mProgressbar.disclose();
字符串j=dataSnapshot.getKey();
Log.v(“getkeyzz”,j);
Blog friendlyMessage=dataSnapshot.getValue(Blog.class);
friendlyMessage.setPostkey(j);
列表。添加(friendlyMessage);
adapter.notifyDataSetChanged();
}
public void onChildChanged(DataSnapshot DataSnapshot,字符串s){}
公共void onChildRemoved(DataSnapshot DataSnapshot){}
public void onChildMoved(DataSnapshot DataSnapshot,字符串s){}
已取消的公共void(DatabaseError DatabaseError){}
};
mquery.addChildEventListener(mchildEventListener);
}否则{
//Toast.makeText(MainActivity.this,“无可用网络”,Toast.LENGTH_SHORT.show();
Toast.makeText(getApplicationContext(),“请检查您的Internet连接”,Toast.LENGTH\u LONG.show();
}
//mDatabseUsers.child(“在线”).setValue(“真”);
}否则{
Intent user1=新Intent(MainActivity.this、LoginActivity.class);
startActivity(user1);
}
}
这是我的适配器类,其中

public class MyCustomAdapter extends RecyclerView.Adapter<MyCustomAdapter.myviewholder> {

    Context context;
    ArrayList<Blog> list;
    List <String> imageUrls;
    //List<String> imageUrls ;
    LayoutInflater inflator;
    int lastPosition = 1;
    boolean mprogressLike = true,mprogressview = true;
    DatabaseReference likeDatabaseReference;
    FirebaseAuth firebaseAuth;
    DatabaseReference blogDatabaseReference;


    public MyCustomAdapter(Context context, ArrayList<Blog> list,FirebaseAuth firebaseAuth,DatabaseReference blogDatabaseReference, DatabaseReference likeDatabaseReference) {

        this.context=context;
        this.list=list;
        inflator=LayoutInflater.from(context);
        this.likeDatabaseReference=likeDatabaseReference;
        this.firebaseAuth=firebaseAuth;
        this.blogDatabaseReference=blogDatabaseReference;
    }
    @Override
    public myviewholder onCreateViewHolder(ViewGroup parent, int position) {

        View v=inflator.inflate(R.layout.posts,parent,false);//this view will contain appearance of each layout i.e each row..
        myviewholder holder=new myviewholder(v);// we are passing the view of each row to the myviewholder class
        return holder;
    }

    @Override
    public void onBindViewHolder(final myviewholder holder, int position) {//here we will inflate datas in the widgets i.e image and title..
        //It is called for each row..so every row is inflated here..

        final Blog p=list.get(position);
        holder.title.setText(p.getTitle());
        holder.username.setText(p.getUsername());
        holder.viewno.setText(p.getTimestamp());
        /*int count = 0;

        for(HospitalModel.Images images: hospitalModelList.get(position).getImagesList()) {
            count += images.size();
        }*/


        for(Blog model : list) {
            imageUrls = new ArrayList<>();;
            imageUrls.addAll(model.getUrl());
            Log.v("IMURLSSS", String.valueOf(imageUrls));


            Picasso.with(context).load(imageUrls.get(position)).into(holder.imageview);
            Log.v("IMGGPOS", imageUrls.get(position));
        }

        Picasso.with(context).load(p.getImage()).into(holder.userdp);
    }



    @Override
    public int getItemCount() {
        return list.size();
    }

    public class myviewholder extends RecyclerView.ViewHolder implements View.OnClickListener {
        // It contains the elements in each row that we will inflate in the recyclerView..
        TextView title,desc,username,likeno,viewno;
        ImageView imageview,userdp, over, comments, likes;
        ImageButton likebtn,viewbtn;

        public myviewholder(View itemView) {
            super(itemView);
            title = (TextView) itemView.findViewById(R.id.blog_desc);//here we link with the elements of each view i.e each row and
            // desc = (TextView) itemView.findViewById(R.id.postdesc);//here we link with the elements of each view i.e each row and
            username = (TextView) itemView.findViewById(R.id.blog_user_name);
            viewno = (TextView) itemView.findViewById(R.id.blog_date);
            likeno = (TextView) itemView.findViewById(R.id.blog_like_count);
            userdp = (ImageView) itemView.findViewById(R.id.blog_user_image);
            imageview = (ImageView) itemView.findViewById(R.id.blog_image);
            comments = (ImageView) itemView.findViewById(R.id.blog_comment_icon);
            //here we link with the elements of each view i.e each row and
            // likebtn = (ImageButton)itemView.findViewById(R.id.likebtn);
            // viewbtn = (ImageButton)itemView.findViewById(R.id.viewbtn);
            comments.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mprogressview = true;
                    int pos = getAdapterPosition();
                    Blog b = list.get(pos);
                    Intent intent = new Intent(context,CommentBox.class);
                    Bundle bundle = new Bundle();
                    bundle.putString("post_key",b.getUid().toString());
                    intent.putExtras(bundle);
                    context.startActivity(intent);
                }
            });
            over = (ImageView) itemView.findViewById(R.id.overflow);


            over.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showFilterPopup(v);
                }
            });

        });

        itemView.setOnClickListener(this);
    }

}
公共类MyCustomAdapter扩展了RecyclerView.Adapter{ 语境; 数组列表; 列出图像URL; //列出图像URL; 充气机; int lastPosition=1; 布尔值mprogressLike=true,mprogressview=true; 数据库引用,如tabbasereference; FirebaseAuth FirebaseAuth; 数据库参考博客数据库参考; 公共MyCustomAdapter(上下文上下文、ArrayList列表、FirebaseAuth FirebaseAuth、DatabaseReference blogDatabaseReference、DatabaseReference likeDatabaseReference){ this.context=context; this.list=list; 充气器=从(上下文)开始充气; this.likeDatabaseReference=likeDatabaseReference; this.firebaseAuth=firebaseAuth; this.blogDatabaseReference=blogDatabaseReference; } @凌驾 公共myviewholder onCreateViewHolder(视图组父级,int位置){ 视图v=充气器。充气(R.layout.posts,parent,false);//此视图将包含每个布局的外观,即每一行。。 myviewholder=newmyviewholder(v);//我们正在将每一行的视图传递给myviewholder类 报税表持有人; } @凌驾 public void onBindViewHolder(最终的myviewholder,int位置){//这里我们将放大小部件中的数据,即图像和标题。。 //它是为每一行调用的,所以每一行在这里都是充气的。。 最终博客p=list.get(位置); holder.title.setText(p.getTitle()); holder.username.setText(p.getUsername()); holder.viewno.setText(p.getTimestamp()); /*整数计数=0; for(HospitalModel.Images图像:hospitalModelList.get(position.getImagesList()){ count+=images.size(); }*/ 用于(博客模型:列表){ ImageURL=newArrayList();; addAll(model.getUrl()); Log.v(“IMURLSSS”,String.valueOf(imageUrls)); 毕加索.with(context).load(imageURL.get(position)).into(holder.imageview); Log.v(“IMGGPOS”,imageurl.get(position)); } 毕加索.with(context).load(p.getImage()).into(holder.userdp); } @凌驾 public int getItemCount(){ 返回list.size(); } 公共类myviewholder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{ //它包含我们将在recyclerView中膨胀的每行元素。。 文本视图标题、描述、用户名、LIKEO、视图编号; ImageView ImageView,userdp,over,comments,likes; 图像按钮,如EBTN、viewbtn; 公共myviewholder(查看项目视图){ 超级(项目视图); title=(TextView)itemView.findViewById(R.id.blog_desc);//这里我们链接每个视图的元素,即每一行和 //desc=(TextView)itemView.findViewById(R.id.postdesc);//她
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference urlRef = rootRef.child("Blog").child(uid).child("url");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String url = ds.getValue(String.class);
            Log.d("TAG", url);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
urlRef.addListenerForSingleValueEvent(valueEventListener);
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Blog").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String uid = dataSnapshot.child("uid").getValue(String.class);
        String title = dataSnapshot.child("title").getValue(String.class);
        String timestamp = dataSnapshot.child("timestamp").getValue(String.class);
        Log.d("TAG", uid + " / " + title  + " / " + timestamp);

        for(DataSnapshot ds : dataSnapshot.child("url").getChildren()) {
            String url = ds.getValue(String.class);
            Log.d("TAG", url);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);