s.getName()).join(", ")); return; } Logger.log("선택된 시트: " + sheet.getName()); var data = sheet.getDataRange().getValues(); Logger.log("데이터 가져오기 성공! 총 " + data.length + "개의 행이 있습니다."); var firebaseUrl = "https://firestore.googleapis.com/v1/projects/your-projects/databases/(default)/documents/members"; for (var i = 1; i < data.length; i++) { var email = data[i][1]; // 스프레드 시트에 이메일 칸 순서에 맞게 수정 var payload = { "fields": { "email": { "stringValue": email } } }; var options = { "method": "POST", "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(firebaseUrl, options); } Logger.log("Firebase"> s.getName()).join(", ")); return; } Logger.log("선택된 시트: " + sheet.getName()); var data = sheet.getDataRange().getValues(); Logger.log("데이터 가져오기 성공! 총 " + data.length + "개의 행이 있습니다."); var firebaseUrl = "https://firestore.googleapis.com/v1/projects/your-projects/databases/(default)/documents/members"; for (var i = 1; i < data.length; i++) { var email = data[i][1]; // 스프레드 시트에 이메일 칸 순서에 맞게 수정 var payload = { "fields": { "email": { "stringValue": email } } }; var options = { "method": "POST", "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(firebaseUrl, options); } Logger.log("Firebase"> s.getName()).join(", ")); return; } Logger.log("선택된 시트: " + sheet.getName()); var data = sheet.getDataRange().getValues(); Logger.log("데이터 가져오기 성공! 총 " + data.length + "개의 행이 있습니다."); var firebaseUrl = "https://firestore.googleapis.com/v1/projects/your-projects/databases/(default)/documents/members"; for (var i = 1; i < data.length; i++) { var email = data[i][1]; // 스프레드 시트에 이메일 칸 순서에 맞게 수정 var payload = { "fields": { "email": { "stringValue": email } } }; var options = { "method": "POST", "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(firebaseUrl, options); } Logger.log("Firebase">
function syncSheetToFirestore() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("설문지 응답 시트1"); // 시트 이름 수정
if (!sheet) {
Logger.log("오류: 시트를 찾을 수 없습니다.");
Logger.log("현재 시트 목록: " + spreadsheet.getSheets().map(s => s.getName()).join(", "));
return;
}
Logger.log("선택된 시트: " + sheet.getName());
var data = sheet.getDataRange().getValues();
Logger.log("데이터 가져오기 성공! 총 " + data.length + "개의 행이 있습니다.");
var firebaseUrl = "<https://firestore.googleapis.com/v1/projects/your-projects/databases/(default)/documents/members>";
for (var i = 1; i < data.length; i++) {
var email = data[i][1]; // 스프레드 시트에 이메일 칸 순서에 맞게 수정
var payload = {
"fields": {
"email": { "stringValue": email }
}
};
var options = {
"method": "POST",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};
UrlFetchApp.fetch(firebaseUrl, options);
}
Logger.log("Firebase 동기화 완료!");
}
구글 폼 응답 스프레드시트에서 이메일만 때서 firebase의 firestore db에 넣는 코드
구글 스프레드시트 → apps script에 넣고
우측 시계 모양, 트리거 옵션가서
양식 제출 시로 변경하면됨