• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

is not defined

21.11.13 16:48 작성 조회수 144

1

 

강사님 설명이 너무 부실합니다 ㅜㅜ

다른강의에서 한거라서 건너띈다는 부분이 너무 많네요..

firebase.firestore()
firebase.auth().currentUser
db.collection

이런 부분 무슨 기능인지 모르겠는데

따로 제가 다 찾아봐야 되는거죠?

 

 

 

 

답변 2

·

답변을 작성해보세요.

0

혹시 몰라 공유 드린 github 소스를 보니 아래와 같이 정상적으로 되어 있어서 예제 소스랑 비교 해보시면서 해보시면 좋을듯 합니다 ^^

https://github.com/david-inflearn/david-zzang/blob/main/src/views/pages/Table2.vue

<a-table :columns="columns" :data-source="data">

 

data() {

return {

...

data: [],
...
}
};

 

onAddData() {
var db = firebase.firestore();
var self = this;
var user = firebase.auth().currentUser;
if (user) {
db.collection("bbs")
.add({
uid: user.uid,
name: self.name,
age: self.age,
address: self.address,
img: self.img,
})
.then(function (mRef) {
var _t = {
uid: user.uid,
name: self.name,
age: self.age,
address: self.address,
img: self.img,
};
_t["key"] = mRef.id;
self.data.push(_t);
});
}
SoriBada님의 프로필

SoriBada

2021.11.13

깃허브도 있었네요 참고하겠습니다

레퍼런스 보면서 진도 나가니까 초심자한테는 조금빡센 느낌입니다. ㅜㅜ

완강 하겠습니다 퐈이팅!

0

아래 내용은 모르셔도 예제만 따라 하시면 될것 같아서 굳이 설명을 드리지 않았는데 여기에 말씀 드리도록 하겠습니다.

firebase.firestore()

-> firebase.firestore 는 Google 에서 만든 database인 firestore 의 instance 객체 정보 입니다.

firebase.auth().currentUser

-> firebase 안에 firestore는 db instance 이고 auth는 로그인 되어 있는 세션 instance 정보 입니다.

이 의미는 현재 firebase auth 를 통해 로그인한(구글이든,일반 이메일이든) 사용자 의 정보(이메일, 패스워드 등등) 에 대한 내용을 return 하는데 보통 해당 문장은 현재 로그인이 된 사용자가 있냐 없냐로 주로 사용한곤 합니다.

로그인 하지 않는 상태면 currentUser 값은 null 이라서요

db.collection

-> db.collection 는 firestore라는 db를 collection이라고 구글에서 명시를 해놔서 저렇게 사용을 하면 구글 db 관련 제어를 할때 사용을 한다고 보시면 될듯 합니다.

자세한건 제가 강의내용에도 명시되어 있고 구글 문서에도 상황별(추가,삭제, 업데이트) 로 아주 아주 자세하게 나와 있어서 아래 링크 추가 참고하시면 될듯 합니다.

https://firebase.google.com/docs/firestore/manage-data/add-data#web-version-8

 

그리고 위에 에러는 보시면 <a-table> 에 담길 :data-source를 "data" 라는 array를 참고 하겠다라고 적으셨는데 실제 변수 선언한데를 보면 data  라는 array가 없습니다.

 

return {

    data: []

 

이렇게 추가를 해주셔야 될듯 합니다.

만약 users를 테이블에 담으실 용도였다면 :data-source="users" 라고 하시면 됩니다.