inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter로 SNS 앱 만들기

인증 메일 전송 / firebase storage에 프로필 이미지 저장 강의 질문

해결된 질문

668

강민석

작성한 질문수 4

0

안녕하세요.

강의 잘 듣고 있습니다.

인증 메일 전송 / firebase storage에 프로필 이미지 저장 강의에 대해서 질문이 있습니다.

스크린샷 2023-11-10 204111.pngfirebase storage에 파일이 잘 저장되기는 했으나, 이미지 파일로 저장되지 않았습니다.스크린샷 2023-11-10 205135.png왜 이렇게 되는지 잘 모르겠습니다.

바쁘실텐데 질문 읽어주셔서 감사합니다.

flutter android firebase dart

답변 4

0

DEV MOO

보내주신 소스 코드로 확인해본 결과 firebase 에 이미지 형식으로 잘 저장되는걸 확인했습니다.

테스트는 에뮬레이터, 실제기기 어디에서 하고 계시나요?

일단, 터미널에서 아래 명령어를 차례대로 실행 후, 다시 확인 부탁드립니다.

flutter clean
flutter pub get

0

강민석

터미널에서 명령어를 실행 후 다시 실행하였지만, 변화 없었습니다.

테스트는 에뮬레이터에서 하고 있습니다.

(pixel xl api 30)

에뮬레이터에서는 다음과 같이 .png로 저장되어 있는데

image

fire storage에서는 그냥 파일로 저장됩니다.

image다운 받아서 확장자를 변경시켜 주면, 사진으로 나옵니다.

image

0

강민석

일단 fire storage에서는 저렇게 나오지만, 다시 불러올 때도 image로 잘 처리됩니다.

앱 기능상 문제는 없는 것으로 보입니다.

 

0

DEV MOO

번거로우시겠지만 프로젝트 폴더를 압축해서

gobackad001@gmail.com

로 보내주실 수 있을까요?

0

강민석

아닙니다.

오히려 신경 써 주셔서 감사합니다.

바로 보내겠습니다.

(참고로 vscode를 이용하여 코딩했습니다.)

0

강민석

혹시 죄송하지만, 3번째 질문 제가 올린 건데 같이 해결 가능할까요?

0

DEV MOO

증상이 재현되지 않아서 해결될지 모르겠습니다만

코드를 다시 작성해봤습니다.

 

  • 먼저, 터미널에서 아래 명령어를 입력해서 mime 패키지를 설치해주세요.

flutter pub add mime
flutter pub get

 

  • auth_repository.dart 파일의 signUp 함수에 아래 코드를 작성해주세요.

  Future<void> signUp({
    required String email,
    required String name,
    required String password,
    required Uint8List? profileImage,
  }) async {
    UserCredential userCredential = await firebaseAuth.createUserWithEmailAndPassword(
      email: email,
      password: password,
    );

    // mime 패키지의 lookupMimeType 함수를 사용해서 file 의 mimeType 을 String 으로 받음
    // lookupMimeType 의 첫 번째 인자값은 파일의 경로를 전달, 선택 인자값 headerBytes 에 파일의 데이터를 int 로 갖고 있는 List 를 전달
    // 원래 lookupMimeType 함수는 파일의 경로에 존재하는 파일의 확장자로부터 mimeType 을 특정하지만, headerBytes 에 파일 데이터가 전달되면
    // 파일 데이터에서 magic-number(파일의 유형에 대한 정보를 갖고 있는 데이터)로 mimeType 을 특정함
    String? mimeType = lookupMimeType('', headerBytes: profileImage!);
    SettableMetadata metadata = SettableMetadata(contentType: mimeType);

    String uid = userCredential.user!.uid;
    await userCredential.user!.sendEmailVerification();

    Reference ref = firebaseStorage.ref().child('profile').child(uid);
    UploadTask uploadTask = ref.putData(profileImage!, metadata);

    print(userCredential.user);
  }

 

  • 문제가 해결되셨으면 답글 부탁 드립니다. 강의에 추가해 놓을게요.

0

DEV MOO

강의 추가 완료

0

강민석

강의를 진행하는데 큰 문제가 없어 일단 계속 진행하였습니다.

하지만 아래와 같이 수정하여 실행시켜도, 이미지 파일로 저장 되지 않습니다.
image

0

LEE JACK

저도 같은 상황입니다.

MemoryImage에서는 Unit8List 데이터를 정상적으로

읽어서 출력하는데는 문제가 없는 상황인데,

스토리지에 올릴 때만 유형을 인식못하는 상황이다보니..

1

LEE JACK

자체 해결 코드 공개 합니다.

 

1

DEV MOO

안드로이드에서 작업하고 계신가요?

실수로 파이어프로젝트를 삭제하여 다시 살렸는데 profile screen이 에러입니다

0

152

1

파이어베이스 연동 중 Auth 및 ImagePicker 오류 발생, 도움 요청드립니다.

0

145

2

파이어베이스에서 실수로 강의프로젝트를 실수로 삭제하였습니다.도와주세요

0

169

2

파이어베이스 스토리지 설정에 프로젝트 업그레이드 라고 뜨는데 어떻게 하면됩니까

0

219

1

이거는 왜그렇죠

0

149

1

셋팅에 문제가생겼네요

0

142

2

마치면서 에러가 댓글가져오기와 좋아요 리스트 가져오기 에러

0

109

1

섹션15페이징기능_4프로필 화면에 페이징 적용

0

98

1

섹션15페이징기능_3좋아요 목록 화면에 페이징 적용

0

184

1

섹션14페이징기능_1게시글 목록 화면에 페이징 적용 feed_repository.dart에러

0

103

1

11셕션에서 좋아요.강의코드에서 좋아요 업데이트 문제 제대로 수정된건가요

0

122

1

12댓글화면_3댓글정보 가져오기

0

224

2

11댓글화면_댓글 정보 가져오기에서 콘솔에 commentList못찍고 있어요

0

81

1

섹션11 좋아요 목록화면에서 콘솔에서 FeedModel 데이터를 못가지고 있어요

0

88

1

섹션11 좋아요.누른 게시글 정보를 화면에표시에서 Exception 왜 발생합니까

0

146

0

Storage사용..?

0

902

2

10 게시물 화면에서 조금헷갈려서요

0

132

2

게시글 이미지 슬라이드 기능추가 carouselslider에러가 났습니다

0

144

1

섹션8 게시글 정보 화면에 표시

0

106

1

섹션8 게시글 정보가져오기

0

114

1

섹션8 게시글 정보 가져오기

0

89

1

섹션8 게시글 정보 가져오기 feedModel를 못받아오는것 같습니다.

0

123

1

메인화면에서 뒤로가기 눌렀을때 어플종료관련 건

0

182

1

섹션8 게시글 정보가져오기

0

161

2