이번에 새로 시작하게된 팀 과제에서 커뮤니티에서 사용하는 뉴스피드를 구현하는 과제를 받았다. 해당 과제를 수행하기 위해서 firebase를 이용해서 데이터를 저장하거나 불러올 수 있도록 하는 것이 구현 과제 중 하나이다.
해당 과제를 수행하기 전에 Firebase에서 사용할 수 있는 함수들을 항상 모르면 공식문서를 찾아가면서 사용했는데 이번 기회에 사용할법한 내용의 함수들을 미리 정리를해서 다음번에는 공식문서 없이도 나중에 참고할 수 있도록 정리를 하였다.
이미지만 넣기에는 이미지의 내용이 잘 보이지 않으니 하나하나 쓰자면...
auth ref를 반환하는 함수이다. 아무런 매개변수를 필요로 하지 않는다.
signInWithEmailAndPassword(auth,email,password)
로그인을 하는 함수로 email과 password를 추가적인 인수로 넣어줘야 하고 Promise를 반환한다.
createUserWithEmailAndPassword(auth,email,password)
새로운 이메일을 등록하는 함수로 email과 password를 추가적인 인수로 넣어줘야 하고 Promise를 반환한다.
onAuthStateChanged(auth,callback(user))
사용자 로그인 상태 변경에 따른 로직을 구현할 수 있는 함수로 콜백함수를 인수로 넣는다 이 콜백함수의 매개변수로는 user에 대한 정보를 가지고 온다.
github OAuth를 사용하기 위한 provider ref를 반환한다. 매개변수는 필요치 않다.
signInWithRedirect(auth,provider)
provider는 여러 공급 매체에서 제공하는 provider ref를 넣으면 되고 auth는 auth ref를 넣으면 된다. 이때 방식은 redirect 방식으로 동작한다. Promise를 반환하며 성공했을 때의 결과값을 반환하지는 않는다.
sendPasswordResetEmail(auth, email)
사용자 비밀번호 변경 이메일을 보내서 사용자의 비밀번호를 변경할 수 있는 함수로 auth ref와 email을 인수로 넣는다. Promise를 반환하며 별도의 결과 값을 반환하지 않는다.(에러제외)
updatePassword(auth,newPassword)
사용자 비밀번호를 변경하게 해주는 함수로 새로운 패스워드를 인수로 넣으며 이 또한 Promise를 반환하며 별도의 결과 값을 반환하지 않는다. (에러 제외)
signOut(auth)
사용자 로그아웃을 하는 함수로 Promise를 반환하며 별도의 반환값은 없다.
updateProfile(auth.currentUser, {displayName, photoURL...})
사용자 프로필을 변경하는 함수로 auth ref가 아닌 auth.currentUser와 그 외의 여러 객체들을 넣을 수 있다.(displayName과 photoURL과 같은 내용들)
Storage root reference를 반환하는 함수이다.
ref(storage, '폴더/파일이름')
storage에 등록할 ref를 생성한다
uploadBytes(storageRef, file)
storage에 이미지를 업로드 하는 함수로 지정한 storageRef에 해당 file을 저장한다.
getDownloadURL(storageRef)
storage Ref에 저장된 파일의 url을 가져오는 함수이다. 반환 값은 Promise이며 이 안에 file url을 가지고 있다.
firestore reference를 가져오는 함수
collection(db, collectionId)
collection ref를 만드는 함수이다. 지정한 collectionId의 collection을 가지고 온다. 없을 경우에는 만든다(확실하지 않음...)
doc(db, collectionId,docId)
doc ref를 만드는 함수로 docRef를 반환한다. docId에 값을 넣어도 되고 안넎으면
setDoc(docRef, data)
document에 데이터를 등록하는 함수이다.
getDoc(docRef | queryRef)
document에 데이터를 가져오는 함수이다. queryRef를 이용해서 쿼리를 할 수 있다.
updateDoc(docRef,data)
document에 등록된 데이터를 수정하는 함수이다.
deleteDoc(docRef | queryRef)
document에 등록된 데이터를 삭제하는 함수이다.
query(collectionRef, queryMethod)
쿼리를 할 수 있도록 도와주는 함수로 쿼리 메소드는 where 등 많은 것들이 있다. 조건에 맞는 queryRef를 반환하고 실제 데이터는 getDoc과 같은 함수를 이용해야 한다.
where(문서 키 값, 쿼리 연산자, 조건과 비교할 값)
데이터 쿼리 조건을 주기 위한 함수 중 하나로 문서 키 값, 쿼리 연산자, 연산을 수행할 값을 줘서 조건을 줄 수 있다.
비교 문자열은 여려가지가 있는데