Изменение URL-адреса изображения при обновлении изображения профиля - PullRequest
0 голосов
/ 12 сентября 2018

Я создаю приложение для Android, используя Firebase.У приложения есть пользователи, и у этих пользователей есть изображения профиля.Пользователь может лайкать, создавать и комментировать пост. В настоящее время у меня есть структура данных, в которой идентификатор пользователя, имя и URL-адрес загружаемого изображения сохраняются в посте, созданном пользователем, в подобном объекте, а также в объекте комментария.Я сделал это, потому что я не хотел запрашивать объект пользователя каждый раз, когда есть комментарий или сообщение, просто чтобы отобразить имя и изображение профиля.Это означало бы, что если есть, скажем, 30 постов, и каждый от другого человека, мне придется запросить у всех 30 пользователей, чтобы получить имя и URL-адрес изображения.Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда пользователь обновляет изображение, которое мне нужно просмотреть, находит все комментарии, публикации и лайки, которые он сделал, и обновляет их с помощью нового URL-адреса загрузки.Есть ли лучший способ сохранить эти переменные, которые было бы легко получить и обновить.

вот мой пост объект

public class Post implements Parcelable {

    private String postId;
    private String title;
    private String body;
    private CreatedBy createdBy;
    private String parentId;
    @ServerTimestamp
    private Date createdAt;
    private Date updatedAt;

    public Post(){

    }
}

и созданный объектом

Public class CreatedBy implements Parcelable {
    private String id;
    private String name;
    private String imageUrl;
    private CreatorType creatorType;

}

1 Ответ

0 голосов
/ 12 сентября 2018

На самом деле все очень просто: вы просто слушаете Task и обновляете базу данных реального времени, указав путь пользователя.

Вы, вероятно, вставите изображение в onActivityResult() после получения некоторых данных.

// uploadTask is StorageReference's task
uploadTask.addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle unsuccessful uploads
    }
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        // taskSnapshot.getMetadata() contains file metadata such as size, content
        taskSnapshot.getDownloadUrl();
        // Update the users node in Realtime Database with the URL
        // If you're using image loading library like Glide it should update
        // automatically
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...