Восстановить фото из Firebase

Я новичок в Firebase, и есть варианты, которые я еще не очень хорошо знаю. Может ли кто-нибудь помочь мне восстановить аватарку?

У меня есть 3 класса, модель, еще один адаптер и последний вид деятельности.

Класс модели:

public class Message {

public String message_id;
public String message;
public String user_id;
public String user_name;
public String profileimage;
public String created_time;


public Message() {
}


public Message(String message, String user_id, String user_name, String profileimage, String created_time) {
    this.message = message;
    this.user_id = user_id;
    this.user_name = user_name;
    this.profileimage = profileimage;
    this.created_time = created_time;
}


public String getMessage_id() {
    return message_id;
}

public void setMessage_id(String message_id) {
    this.message_id = message_id;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public String getUser_id() {
    return user_id;
}

public void setUser_id(String user_id) {
    this.user_id = user_id;
}

public String getUser_name() {
    return user_name;
}

public void setUser_name(String user_name) {
    this.user_name = user_name;
}

public String getProfileimage() {
    return profileimage;
}

public void setProfileimage(String profileimage) {
    this.profileimage = profileimage;
}

public String getCreated_time() {
    return created_time;
}

public void setCreated_time(String created_time) {
    this.created_time = created_time;
}


@NonNull
@Override
public String toString() {
    return "Message{" +
            "message_id='" + message_id + '\'' +
            ", message='" + message + '\'' +
            ", user_id='" + user_id + '\'' +
            ", user_name='" + user_name + '\'' +
            ", profileimage='" + profileimage + '\'' +
            ", created_time='" + created_time + '\'' +
            '}';
}

}

Класс адаптера:

public class MessagesAdapter extends ArrayAdapter<Message> {

private Context ctx;
Message message;
private final String TAG = "demoMessageAdapter";
private ChatActivity dataUpdateAfterMessageDelete;
private FirebaseAuth mAuth;
private ArrayList<Message> messageObjects;
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.US);
private DatabaseReference UsersRef;
private Date convertedDate;
private String date;
private StorageReference UserProfileImageRef;
private FirebaseUser firebaseUser;
private GoogleSignInClient googleSignInClient;
private String currentUserId;
int num = 1;


MessagesAdapter(@NonNull Context context, int resource, @NonNull List<Message> objects, ChatActivity chatActivity) {
    super(context, resource, objects);
    this.ctx = context;
    this.messageObjects = (ArrayList<Message>) objects;
    this.dataUpdateAfterMessageDelete = chatActivity;
    mAuth = FirebaseAuth.getInstance();


}


@SuppressLint("UseCompatLoadingForDrawables")
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    firebaseUser = mAuth.getCurrentUser();
    UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
    UserProfileImageRef = FirebaseStorage.getInstance().getReference().child("profileimage");
    message = getItem(position);
    MessagesAdapter.ViewHolder viewHolder;
    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.messages_listview, parent, false);
        viewHolder = new MessagesAdapter.ViewHolder();
        viewHolder.messageTV = convertView.findViewById(R.id.messageTV);
        viewHolder.messageSenderTV = convertView.findViewById(R.id.messageSenderTV);
        viewHolder.messageTimeTV = convertView.findViewById(R.id.messageTimeTV);
        viewHolder.fotoforos = convertView.findViewById(R.id.fotoforos);
        viewHolder.deleteMessageButton = convertView.findViewById(R.id.deleteMessageButton);
        convertView.setTag(viewHolder);

    } else {
        viewHolder = (MessagesAdapter.ViewHolder) convertView.getTag();
    }
    if (!message.user_id.equals(Objects.requireNonNull(mAuth.getCurrentUser()).getUid())) {
        viewHolder.deleteMessageButton.setVisibility(View.INVISIBLE);
    } else {
        viewHolder.deleteMessageButton.setVisibility(View.VISIBLE);
    }
    viewHolder.messageSenderTV.setText(message.user_name);
    viewHolder.messageTV.setText(message.message);
    }
    try {
        convertedDate = dateFormat.parse(message.created_time);
        dateFormat.format(new Date());
        String datestre = dateFormat.format(convertedDate.getTime());
        datestre = datestre.replace("-", "/");
     }
    catch (ParseException e) {
    e.printStackTrace();
    }
    viewHolder.messageTimeTV.setText(dateFormat.format(convertedDate));
    viewHolder.deleteMessageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dataUpdateAfterMessageDelete.deleteMessage(messageObjects.get(position).message_id);
        }
    });

    return convertView;
}

private static class ViewHolder {
    TextView messageTV, messageSenderTV, messageTimeTV;
    ImageButton deleteMessageButton;
    CircleImageView fotoforos;
}

public interface DataUpdateAfterMessageDelete {
    void deleteMessage(String message_id);
}

Класс активности чата:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chat);
    setTitle("Chatroom");

    threadNameTV = findViewById(R.id.threadNameTV);
    newMessageET = findViewById(R.id.newMessageET);
    homeButton = findViewById(R.id.homeButton);
    sendButton = findViewById(R.id.sendButton);
    messagesLV = findViewById(R.id.messagesLV);
    final View messageview = getLayoutInflater().inflate(R.layout.messages_listview, null);
    messageTV = messageview.findViewById(R.id.messageTV);
    fotoforos = messageview.findViewById(R.id.fotoforos);


    mAuth = FirebaseAuth.getInstance();
    currentUserId = mAuth.getCurrentUser().getUid();
    user = mAuth.getCurrentUser();
    mDatabase = FirebaseDatabase.getInstance().getReference();
    firebaseUser = mAuth.getCurrentUser();
    UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
    UserProfileImageRef = FirebaseStorage.getInstance().getReference().child("profileimage");
    googleSignInClient = GoogleSignIn.getClient(ChatActivity.this, GoogleSignInOptions.DEFAULT_SIGN_IN);


    threadNameTV.setTextColor(Color.parseColor("#000000"));

    if (getIntent() != null && getIntent().getExtras() != null) {
        if (getIntent().getExtras().containsKey("messageThreadDetails")) {
            messageThread = (MessageThread) getIntent().getSerializableExtra("messageThreadDetails");
            threadNameTV.setText(messageThread.title);
            getMessages(messageThread.thread_id);
            incrementar();
        }
    } else {
        Toast.makeText(this, "No data received", Toast.LENGTH_SHORT).show();
    }

    homeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (user != null) {
                user = null;
                mDatabase = null;
                mAuth = null;
                Intent intent = new Intent(ChatActivity.this, ThreadsActivity.class);
                startActivity(intent);
                finish();
            } else {
                user = null;
                mDatabase = null;
                mAuth = null;
                Toast.makeText(ChatActivity.this, "You need to login", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(ChatActivity.this, IniciarSesion.class);
                startActivity(intent);
                finish();
            }
        }
    });

    sendButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String message = newMessageET.getText().toString();
            String user_name = user.getDisplayName();
            String profileimage = 
            if (message.isEmpty()) {
                Toast.makeText(ChatActivity.this, "Enter Message", Toast.LENGTH_SHORT).show();
            } else {
                addMessage(message, user_name, profileimage, messageThread.thread_id);
            }
        }
    });

}

public void addMessage(String message, String user_name, String profileimage, String thread_id) {
    if (user != null) {
        mDatabase.child("Normas").child(thread_id).child("messages").push().setValue(new Message(message, user.getUid(), user_name, profileimage, new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.US).format(new Date())));
        newMessageET.setText("");
    } else {
        Toast.makeText(this, "No user logged in", Toast.LENGTH_SHORT).show();
    }
}


public void getMessages(String thread_id) {
    mDatabase.child("Normas").child(thread_id).child("messages").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            messagesList.clear();
            for (DataSnapshot messageSnapshot : dataSnapshot.getChildren()) {
                Message message = messageSnapshot.getValue(Message.class);
                if (message != null) {
                    message.message_id = messageSnapshot.getKey();
                    Log.d(TAG, "onDataChange: " + message.toString());
                }
                messagesList.add(message);
            }
            messagesAdapter = new MessagesAdapter(ChatActivity.this, R.layout.threads_listview, messagesList, ChatActivity.this);
            messagesLV.setAdapter(messagesAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Toast.makeText(ChatActivity.this, "ChatActivity: " + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
}


@Override
public void deleteMessage(String message_id) {
    mDatabase.child("Normas").child(messageThread.thread_id).child("messages").child(message_id).removeValue();
}

Ответы (0 шт):