Как загрузить FireBase изображения в другой деятельности - PullRequest
0 голосов
/ 21 марта 2019

Я хочу, чтобы, когда пользователь отправлял или получал изображения, он мог щелкнуть изображение, а затем просмотреть изображение в другом действии. Поэтому я добавил слушателя щелчка к изображению в моем MessageAdapter.java, как это

void bind(Messages message) {

            String user_id = message.getFrom();
            String message_type = message.getType();


            if (message_type.equals("text")) {


                messageText.setText(message.getMessage());
                // Format the stored timestamp into a readable String using method.
                timeText.setText(DateUtils.formatDateTime(message.getTime()));
                mSentImage.setVisibility(View.INVISIBLE);
            }else {
                messageText.setVisibility(View.INVISIBLE);
                Picasso.with(mSentImage.getContext()).load(message.getMessage()).networkPolicy(NetworkPolicy.OFFLINE).into(mSentImage);

                mSentImage.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent intent = new Intent(view.getContext(), MessageViewerActivity.class);

                        intent.putExtra("message_id", user_id); //i don't know the right value to pass here

                        view.getContext().startActivity(intent);
                    }
                });
            }

Моя цель состояла в том, чтобы получить идентификатор сообщения, затем извлечь его в следующем упражнении и сослаться на него в моей базе данных и загрузить значение, которое должно быть изображением, в представление изображения с этим кодом.

final String user_id = getIntent().getStringExtra("message_id");

    msgImage = findViewById(R.id.MsgImageView);



    mAuth = FirebaseAuth.getInstance();

    mRootRef = FirebaseDatabase.getInstance().getReference();
    mCurrentUserId = mAuth.getCurrentUser().getUid();


    DatabaseReference user_message_push = mRootRef.child("messages").child(mCurrentUserId).child(user_id);

    user_message_push.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String type = dataSnapshot.child("type").getValue().toString(); // this line returns null
            String image = dataSnapshot.child("message").getValue().toString();

            if (type.equals("image")){
                Picasso.with(MessageViewerActivity.this).load(image).into(msgImage);

            }else {

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

Я не нашел ничего об этом в интернете, и я не знаю, правильно ли я это искал. Код выше был все из моей головы, и я все еще новичок в Android. Ваша помощь высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...