인프런 커뮤니티 질문&답변

vadain2000님의 프로필 이미지
vadain2000

작성한 질문수

Flutter로 SNS 앱 만들기

Firebase Storage 에 게시글 이미지 저장

게시글등록화면_5Firebase Storage에 게시글 이미지 저장

해결된 질문

작성

·

31

·

수정됨

0

이해가 잘 안돼서 다시 문의 드려요.동영상을 되풀이 해서 봐도 이해가 잘 안돼서요.

String feedId = Uuid().v1();

feedid는 고유한 아이디 부여하는거고, 아래요 feeds는 폴더인데 .doc(feedid)를 게시글의 feedid를 부여 하는겁니까

캡처.PNG

 

// firestore 문서참조

DocumentReference<Map<String, dynamic>> feedDocRef =

firebaseFirestore.collection('feeds').doc(feedId);

 

여기서 feedDocRef는 여기서 어느것을 말하는겁니까

캡처1.PNG

 잘 이해가 안돼서요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

vadain2000님, Firebase Firestore와 관련된 질문이시네요. 답변을 드리기 전에, 기존의 유사한 질문과 답변이 있어 도움이 되실 것 같아 관련 URL을 함께 안내드리겠습니다.

이 질문에서 다룬 내용과 상당히 유사한 부분들이 있어 참고하시면 도움이 되실 거예요.

요약 및 설명

고유한 feedId 생성

String feedId = Uuid().v1();

이 코드는 Uuid 패키지를 사용하여 고유한 feedId를 생성합니다. 각 피드 문서가 고유한 ID를 갖게 하기 위해 사용됩니다.

Firestore에 문서 참조 생성

DocumentReference<Map<String, dynamic>> feedDocRef = 
    firebaseFirestore.collection('feeds').doc(feedId);

여기서 feedDocRef는 다음을 의미합니다:
- firebaseFirestore.collection('feeds'): Firestore의 “feeds” 컬렉션을 참조합니다.
- .doc(feedId): 위에서 생성한 고유한 feedId를 사용하여 새로운 문서를 지정합니다. 이는 “feeds” 컬렉션 내에 feedId라는 이름의 문서를 참조하게 됩니다.

이미지 참조 생성

Reference ref = firebaseStorage.ref().child('feeds').child(feedId);

이 코드는 Firebase Storage에서 이미지가 저장될 경로를 참조합니다. 여기서 feedId는 이미지가 저장될 폴더 이름이 됩니다.

데이터베이스 저장 예제

다음과 같이 FeedModel 객체를 만들어 데이터베이스에 저장할 수 있습니다:

FeedModel feedModel = FeedModel(
  uid: uid,
  feedId: feedId,
  desc: desc,
  imageUrls: imageUrls,
  likes: [],
  commentCount: 0,
  likeCount: 0,
  creatAt: Timestamp.now(),
  writer: someUserModel,
);

await feedDocRef.set(feedModel.toMap());
  • feedDocRef.set(feedModel.toMap()): 위에서 생성한 feedDocRef 참조를 사용하여, FeedModel 객체를 Firestore에 저장합니다.

이미지 URI 예제

예를 들어, Firestore에서 feeds 컬렉션의 문서들에 있는 imageUrls 필드를 참조하여 각 이미지의 위치를 URI로 저장합니다. (이미지 URL 목록은 Google Cloud Storage에 있는 이미지들의 주소입니다.)

위 설명을 참고하시어 코드와 데이터를 적절히 연결해 보시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

vadain2000님의 프로필 이미지
vadain2000

작성한 질문수

질문하기