GAS(Google Apps Script)에서 Cloud Firestore를 사용할 때의 메모
참고 URL
Firestore for Google Apps Scripts - Github
【서적 관리 시리즈】GAS와 FireBase(Firestore)를 연계시켜라! - Qiita
사전 준비
Firebase 에서 프로젝트가 생성되었습니다.
Cloud Firestore에서 데이터베이스를 생성했습니다. (샘플)
Google Apps Script에서 FirestoreApp 라이브러리 추가
1. Google 스프레드시트에서 '도구'->'스크립트 편집기' 열기
2. 리소스 -> 라이브러리
3. Add a library에 1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw
4. FirestoreApp 추가(버전은 최신으로 유지)
서비스 계정 만들기
1. Google Service Accounts page 방문.
2. Firebase 프로젝트 선택 -> "서비스 계정 만들기"
3. 서비스 계정 이름, 서비스 계정 ID 입력 -> 만들기
4. 역할 -> Cloud Datastore 소유자 선택 -> 계속
5. 사용자 역할, 관리자 역할은 특별히 설정하지 않아도 OK -> 완료
6. 작성한 서비스 어카운트로부터 「키를 작성」-> 키의 타입은 "JSON"으로 하고 로컬에 보존한다.
※JSON의 내용(샘플)
Google Apps Script 코드
가져오기(취득): 컬렉션의 모든 문서 가져오기
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(doc);
}
콘솔[20-12-06 21:58:08:439 JST] { name: 'projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr',
fields:
{ TEST02: { stringValue: '0002' },
TEST01: { stringValue: '0001' } },
createTime: '2020-12-06T11:53:16.582462Z',
updateTime: '2020-12-06T11:53:16.582462Z' }
로드(취득): 기타 속성 항목
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(`フィールドTEST01:${doc.obj.TEST01}`);
console.log(`フィールドTEST02:${doc.obj.TEST02}`);
console.log(`データベースの読み込み時間:${doc.read}`);
console.log(`データベースの更新時間:${doc.updated}`);
console.log(`データベースの作成時間:${doc.created}`);
console.log(`Fullドキュメントパス:${doc.name}`);
console.log(`Localドキュメントパス:${doc.path}`);
}
콘솔 フィールドTEST01:0001
フィールドTEST02:0002
データベースの読み込み時間:Sun Dec 06 2020 22:18:01 GMT+0900 (日本標準時)
データベースの更新時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
データベースの作成時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
Fullドキュメントパス:projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr
Localドキュメントパス:TEST/voKMytSenYR9ZWYoCeWr
쓰기(업데이트): 문서에서 덮어쓰기 업데이트
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 更新するデータ
const data = {
"test01": "test001",
"test02": "test002"
}
// CloudFirestoreをドキュメント更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data);
}
쓰기(업데이트): 문서의 특정 필드 업데이트
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test01": "test111"
}
// CloudFirestoreをフィールド更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data, true);
}
문서 추가
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test03": "test003",
"test04": "test004"
}
// CloudFirestoreをドキュメント追加
firestore.createDocument("TEST", data);
}
Reference
이 문제에 관하여(GAS(Google Apps Script)에서 Cloud Firestore를 사용할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/PmanRabbit/items/a76b9bc5a9d0239c9f78
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Firebase 에서 프로젝트가 생성되었습니다.
Cloud Firestore에서 데이터베이스를 생성했습니다. (샘플)
Google Apps Script에서 FirestoreApp 라이브러리 추가
1. Google 스프레드시트에서 '도구'->'스크립트 편집기' 열기
2. 리소스 -> 라이브러리
3. Add a library에 1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw
4. FirestoreApp 추가(버전은 최신으로 유지)
서비스 계정 만들기
1. Google Service Accounts page 방문.
2. Firebase 프로젝트 선택 -> "서비스 계정 만들기"
3. 서비스 계정 이름, 서비스 계정 ID 입력 -> 만들기
4. 역할 -> Cloud Datastore 소유자 선택 -> 계속
5. 사용자 역할, 관리자 역할은 특별히 설정하지 않아도 OK -> 완료
6. 작성한 서비스 어카운트로부터 「키를 작성」-> 키의 타입은 "JSON"으로 하고 로컬에 보존한다.
※JSON의 내용(샘플)
Google Apps Script 코드
가져오기(취득): 컬렉션의 모든 문서 가져오기
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(doc);
}
콘솔[20-12-06 21:58:08:439 JST] { name: 'projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr',
fields:
{ TEST02: { stringValue: '0002' },
TEST01: { stringValue: '0001' } },
createTime: '2020-12-06T11:53:16.582462Z',
updateTime: '2020-12-06T11:53:16.582462Z' }
로드(취득): 기타 속성 항목
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(`フィールドTEST01:${doc.obj.TEST01}`);
console.log(`フィールドTEST02:${doc.obj.TEST02}`);
console.log(`データベースの読み込み時間:${doc.read}`);
console.log(`データベースの更新時間:${doc.updated}`);
console.log(`データベースの作成時間:${doc.created}`);
console.log(`Fullドキュメントパス:${doc.name}`);
console.log(`Localドキュメントパス:${doc.path}`);
}
콘솔 フィールドTEST01:0001
フィールドTEST02:0002
データベースの読み込み時間:Sun Dec 06 2020 22:18:01 GMT+0900 (日本標準時)
データベースの更新時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
データベースの作成時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
Fullドキュメントパス:projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr
Localドキュメントパス:TEST/voKMytSenYR9ZWYoCeWr
쓰기(업데이트): 문서에서 덮어쓰기 업데이트
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 更新するデータ
const data = {
"test01": "test001",
"test02": "test002"
}
// CloudFirestoreをドキュメント更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data);
}
쓰기(업데이트): 문서의 특정 필드 업데이트
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test01": "test111"
}
// CloudFirestoreをフィールド更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data, true);
}
문서 추가
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test03": "test003",
"test04": "test004"
}
// CloudFirestoreをドキュメント追加
firestore.createDocument("TEST", data);
}
Reference
이 문제에 관하여(GAS(Google Apps Script)에서 Cloud Firestore를 사용할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/PmanRabbit/items/a76b9bc5a9d0239c9f78
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. Google Service Accounts page 방문.
2. Firebase 프로젝트 선택 -> "서비스 계정 만들기"
3. 서비스 계정 이름, 서비스 계정 ID 입력 -> 만들기
4. 역할 -> Cloud Datastore 소유자 선택 -> 계속
5. 사용자 역할, 관리자 역할은 특별히 설정하지 않아도 OK -> 완료
6. 작성한 서비스 어카운트로부터 「키를 작성」-> 키의 타입은 "JSON"으로 하고 로컬에 보존한다.
※JSON의 내용(샘플)
Google Apps Script 코드
가져오기(취득): 컬렉션의 모든 문서 가져오기
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(doc);
}
콘솔[20-12-06 21:58:08:439 JST] { name: 'projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr',
fields:
{ TEST02: { stringValue: '0002' },
TEST01: { stringValue: '0001' } },
createTime: '2020-12-06T11:53:16.582462Z',
updateTime: '2020-12-06T11:53:16.582462Z' }
로드(취득): 기타 속성 항목
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(`フィールドTEST01:${doc.obj.TEST01}`);
console.log(`フィールドTEST02:${doc.obj.TEST02}`);
console.log(`データベースの読み込み時間:${doc.read}`);
console.log(`データベースの更新時間:${doc.updated}`);
console.log(`データベースの作成時間:${doc.created}`);
console.log(`Fullドキュメントパス:${doc.name}`);
console.log(`Localドキュメントパス:${doc.path}`);
}
콘솔 フィールドTEST01:0001
フィールドTEST02:0002
データベースの読み込み時間:Sun Dec 06 2020 22:18:01 GMT+0900 (日本標準時)
データベースの更新時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
データベースの作成時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
Fullドキュメントパス:projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr
Localドキュメントパス:TEST/voKMytSenYR9ZWYoCeWr
쓰기(업데이트): 문서에서 덮어쓰기 업데이트
「키의 작성」으로 출력한 JSON내의 "project_id", "private_key", "client_email"를 사용한다. function firestoreData
로 열쇠의 정보를 세트.
.gs// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 更新するデータ
const data = {
"test01": "test001",
"test02": "test002"
}
// CloudFirestoreをドキュメント更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data);
}
쓰기(업데이트): 문서의 특정 필드 업데이트
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test01": "test111"
}
// CloudFirestoreをフィールド更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data, true);
}
문서 추가
.gsfunction myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test03": "test003",
"test04": "test004"
}
// CloudFirestoreをドキュメント追加
firestore.createDocument("TEST", data);
}
Reference
이 문제에 관하여(GAS(Google Apps Script)에서 Cloud Firestore를 사용할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/PmanRabbit/items/a76b9bc5a9d0239c9f78
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(doc);
}
[20-12-06 21:58:08:439 JST] { name: 'projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr',
fields:
{ TEST02: { stringValue: '0002' },
TEST01: { stringValue: '0001' } },
createTime: '2020-12-06T11:53:16.582462Z',
updateTime: '2020-12-06T11:53:16.582462Z' }
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// CloudFirestoreからデータを読み込む
const doc = firestore.getDocument("TEST/voKMytSenYR9ZWYoCeWr");
console.log(`フィールドTEST01:${doc.obj.TEST01}`);
console.log(`フィールドTEST02:${doc.obj.TEST02}`);
console.log(`データベースの読み込み時間:${doc.read}`);
console.log(`データベースの更新時間:${doc.updated}`);
console.log(`データベースの作成時間:${doc.created}`);
console.log(`Fullドキュメントパス:${doc.name}`);
console.log(`Localドキュメントパス:${doc.path}`);
}
フィールドTEST01:0001
フィールドTEST02:0002
データベースの読み込み時間:Sun Dec 06 2020 22:18:01 GMT+0900 (日本標準時)
データベースの更新時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
データベースの作成時間:Sun Dec 06 2020 20:53:16 GMT+0900 (日本標準時)
Fullドキュメントパス:projects/projecttest-99999/databases/(default)/documents/TEST/voKMytSenYR9ZWYoCeWr
Localドキュメントパス:TEST/voKMytSenYR9ZWYoCeWr
// CloudFirestoreで認証する為のJSON情報を指定
function firestoreDate() {
var dateArray = {
'email': '[email protected]',
'key': '-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n',
'projectId': 'projecttest-99999'
}
return dateArray;
}
// メイン処理部
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 更新するデータ
const data = {
"test01": "test001",
"test02": "test002"
}
// CloudFirestoreをドキュメント更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data);
}
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test01": "test111"
}
// CloudFirestoreをフィールド更新
firestore.updateDocument("TEST/voKMytSenYR9ZWYoCeWr", data, true);
}
function myFunction(){
// CloudFirestoreの認証
var dateArray = firestoreDate();
var firestore = FirestoreApp.getFirestore(dateArray.email, dateArray.key, dateArray.projectId);
// 追加するデータ
const data = {
"test03": "test003",
"test04": "test004"
}
// CloudFirestoreをドキュメント追加
firestore.createDocument("TEST", data);
}
Reference
이 문제에 관하여(GAS(Google Apps Script)에서 Cloud Firestore를 사용할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/PmanRabbit/items/a76b9bc5a9d0239c9f78텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)