2017-12-17 2 views
0

사진을 찍기 위해 Android 앱을 개발 중입니다. 사용자가 시작하려면 프로필 사진을 찍습니다. 이 이미지의 URL은 Firebase Realtime 데이터베이스에 저장됩니다. 이 URL은 내가 사용자의 프로필 사진을로드 할 필요가 데이터베이스에 여러 위치에 저장됩니다Firebase 저장소 - 이미지 URL 관리

Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg")); 
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment()); 
uploadTask = riversRef.putFile(file); 


uploadTask.addOnFailureListener(new OnFailureListener() { 
    @Override 
    public void onFailure(@NonNull Exception exception) { 

    } 
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
    @Override 
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 

     Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
    } 
}); 

아래 downloadUrl을 검색하기위한 샘플 코드 - 항목을 자신의 게시물, 응용 프로그램에 다른 사람에게 자신의 메시지 각각에 대해, 등, 나는 2 개 옵션

  1. 업데이트 각각의 모든 데이터베이스 항목 다음 한 지금 그는 나중에 프로필 사진을 변경하는 경우

    - 매우 성가신, 폭력 및 자원 집약적

  2. 원본 프로필 사진을 쉽게 덮어 쓸 수 있지만 방법을 파악할 수는 없습니다. 이유는 Firebase Storage가 동일한 파일명에도 불구하고 각 다운로드마다 새로운 URL을 생성하여이 연습의 목적을 무효화한다는 것입니다.

이미지를 Firebase 저장소에 업로드하고 정적 인 URL을 생성하는 더 좋은 방법이 있습니까?

이 의존성에 대한 이유는 피카소와 글라이드를 사용하여 이미지를로드하고 있으며 정적 인 URL이 필요하다는 것입니다.

최소한의 노력으로 프로필 사진을 관리하는 문제를 해결할 수있는 이상적인 아이디어도 환영합니다.

답변

0

나는 결국 URL을 모두 삭제하기로 결정했습니다. 접두어가 gs:// 인 Google 스토리지 Uri는 정적입니다. 앱 내에서만 액세스 할 수 있습니다. 그래서 지금 this tutorial

에서 gs:// URI 사용 지침 사진이 업데이트 될 때마다 사용자 정의 RequestHandler을 쓰기로했다, 나는 원본 파일을 덮어 쓰기 자동으로 데이터베이스에있는 모든 항목에서 모든 링크 이미지를 업데이트 .

관련 문제