더북(TheBook)

9.3.4 Firestore에 포스트 등록하기

포스트 작성을 위한 UI 준비는 모두 끝났습니다. 이제 버튼을 눌렀을 때 Firestore에 데이터를 등록시키면 됩니다. 앞에서 Firestore로 사용자를 등록하고 조회할 때 lib/users.js에 함수들을 작성해준 것처럼, 이번에도 lib 디렉터리에 posts.js라는 파일을 생성해 이 파일 안에 Firestore에 포스트를 읽고 쓰는 함수들을 작성해주겠습니다.

다음과 같이 코드를 작성해보세요.

lib/posts.js

import firestore from '@react-native-firebase/firestore';

const postsCollection = firestore().collection('posts');

export function createPost({user, photoURL, description}) {
  return postsCollection.add({
    user,
    photoURL,
    description,
    createdAt: firestore.FieldValue.serverTimestamp(),
  });
}

이번에 사용할 컬렉션의 이름은 posts입니다. 지난번 users.js 파일에서 createUser 함수를 구현할 때는 Firebase 인증으로 얻은 사용자의 고유 id를 문서의 id로 사용했고, 데이터를 등록하기 전에 id를 이미 알고 있는 상황이라 collection.doc(id).set() 함수를 사용했습니다. 이번에는 그 상황과 달리 데이터를 등록하기 전에 id를 알지 못하므로, 데이터를 등록할 때마다 새 id를 생성해줘야 하지요. 이런 상황에서는 collection.add() 함수를 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.