공부한 내용
firebase 연결
os-release 파일 확인 → Fedora
backend-firebase-trials git:(master) ✗ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"
JavaScript
복사
Linux Github Desktop 설치
•
Fedora에서는 RPM (Red Hat Package Manager)을 사용함
•
성공한 방법
◦
아래 링크에서 GitHubDesktop-linux-3.2.0-linux1.rpm 다운로드
하다가 에러 나서 다른 방법 모색
하다가 ubuntu 아니라서 다른 방법 모색
collection(test).doc(3) write
•
index.js
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { testRead, testWrite } from "./services/firestore";
const firebaseConfig = { // 각자 채우기
apiKey: "",
authDomain: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: "",
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
getFirestore(app);
// Write routine
async function write() {
const id = "3";
const data = { healthy: true, welcome: true };
if (await testWrite(id, data)) { // true 반환됨
const d = await testRead(id);
if (Object.keys(data).length !== Object.keys(d).length) { // 쓴 것과 읽은 것 같은지 확인
throw Error("Fail to read");
}
for (let field in d) {
if (data[field] === undefined || data[field] !== d[field]) {
throw Error("Fail to read");
}
}
return d;
} else {
throw Error("Fail to write");
}
}
write()
.then((v) => {
console.log(v);
process.exit(0);
})
.catch((e) => {
console.error(e);
process.exit(1);
});
JavaScript
복사
•
firestore.js
import { getFirestore, doc, getDoc, setDoc } from "firebase/firestore";
const collection = "test";
const testRead = async (id) => {
const db = getFirestore();
const ref = doc(db, collection, id);
try {
const snap = await getDoc(ref);
if (snap.exists()) {
return snap.data(); // 읽은 데이터 반환
} else {
return {};
}
} catch (e) {
return {};
}
};
const testWrite = async (id, data) => {
const db = getFirestore();
const ref = doc(db, collection, id);
try {
await setDoc(ref, data);
return true; // true 반환
} catch (e) {
return false;
}
};
export { testRead, testWrite };
JavaScript
복사
collection(test).doc(1) read
•
index.js
// Read routine
async function read() {
const id = "1";
const isReadable = await testRead(id);
if (isReadable) {
return isReadable;
} else {
throw Error("Fail to read");
}
}
JavaScript
복사
하루 정리
TIL 작성하기
졸프
발표 준비
6시 발표
CS
11시 스터디
노이랩
Firestore 사용 - read, write