이전 글을 통해
firestore 데이터를 엑셀로 export 진행하고
이 글에서는
데이터를 전체 삭제하고
엑셀 데이터를 firestore에 저장하는 방법을 적고자 한다.
준비 작업
상단의 이전 글에서 코드 작성 전인 1 ~ 4 까지의 작업을 진행한다.
그리고 새로 생성한 시트에는 저장하고 싶은 엑셀 데이터를 넣어둔다.
전체 삭제 코드
for(var i = 1; i < data.length; i++) {
// 엑셀의 0열에서 collection 이름을 가져와서 데이터를 전체 불러옴
const allDocuments = firestore.getDocuments(data[i][0])
for(var j = 0; j < allDocuments.length; j++) {
// 마지막에 있는 데이터 key 값을 가져옴
const arr = allDocuments[j].name.split('/')
firestore.deleteDocument(`${data[i][0]}/${arr[arr.length - 1]}`);
}
console.log(`${data[i][0]} ${allDocuments.length} 완료`)
}
insert 코드 작성
function writeDataToFirebase() {
var ss = SpreadsheetApp.openById("sheet_id");
var sheet = ss.getSheets()[0];
var data = sheet.getDataRange().getValues();
var dataImport = {};
var firestore = FirestoreApp.getFirestore("client_email", "private_key", "project_id");
for(var i = 1; i < data.length; i++) {
dataImport ={
"Field1": data[i][0],
"Field2": data[i][1],
}
firestore.createDocument("document명", dataImport)
}
}
- sheet_id : 새로 생성한 시트의 url에서 '1K24b7hq8yuWmChobH0HObTOidUJbJQ-6n8nPJMRjM' 이 부분을 의미한다.
https://docs.google.com/spreadsheets/d/1K24b7hq8yuWmChobH0HObTOidUJbJQ-6n8nPJMRjM/edit#gid=0 - client_email, private_key, project_id
Firebase 프로젝트에 접속한 뒤
좌측 상단에서 설정 아이콘 선택 후 [프로젝트 설정] 클릭한다.
[서비스 계정] 메뉴에서 좌측 중앙에 [서비스 계정 n개] 클릭하면 구글 클라우드 사이트에 접속된다.
구글 클라우드 사이트에서
좌측 [서비스 계정] 메뉴를 클릭하고
목록에 나오는 이메일을 클릭한다.
상단의 [키] 메뉴에서 [키 추가] 버튼을 누른 후
형식은 json으로 다운받고
파일에서 [project_id], [private_key], [client_email] 값을 복사하고 코드에 입력한다.
실행
다시 Apps Script 사이트로 돌아와서 writeDataToFirebase 선택 후 [실행] 버튼을 누른다.
firebase firestore에 들어가면 데이터가 잘 들어가있는 것을 확인할 수 있다.
반응형
'💻 개발IT > Infra' 카테고리의 다른 글
[Firestore] 비용 줄이기.. (0) | 2024.10.05 |
---|---|
[Firebase] Cloud Function 세팅해보자 (1) | 2023.09.21 |
[Firebase Firestore] 엑셀 내보내기 (8) | 2023.08.07 |
[AWS] EC2에 HTTPS 적용하기 (feat. Mixed Content 에러) (0) | 2023.06.07 |
[AWS] EC2에 Github 연동해보자 (0) | 2023.06.05 |
[AWS RDS] MySQL Workbench 연결하기 (0) | 2023.06.01 |
[AWS] EC2와 RDS 연동해보자! (0) | 2023.05.30 |
Netlify로 React 프로젝트 배포하기 (0) | 2023.05.28 |