0

私はFirebaseユーザーとそのユーザーの投稿を持っています。ポストから画像URLを取得し、ダウンロードしてgridviewに表示したい。Fireviewの写真を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; 
    } 

} 

this is the firebase database

私は必要なものは、それをダウンロードし、それを入れ、現在のユーザーを取得し、子(ポスト)と子(画像)を取得することですグリッドビューを開き、次の投稿に移動して2番目の投稿画像を取得します。

提案がありますか?ありがとう!

答えて

0

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

3.またはaddListenerForSingleValueEvent

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

      } 
     }); 
関連する問題