Firebase가 굉장히 간단하게 만들었어요.
BaaS(백엔드 as a Service)란 무엇입니까?
BaaS는 인증, 데이터베이스, 호스트 및 기타 전방 프레임워크(예를 들어 React, Vue 또는 순수 자바스크립트)에 쉽게 연결할 수 있는 기능을 제공함으로써 백엔드 개발을 간소화하려고 한다.
Firebase를 제외하고 다른 BaaS 소스 공급 대체품도 있다. 예를 들어 parseplatform, appwrite와 supabase이다.
간단한 Firebase 소개
모든 응용 프로그램에서 가장 흔히 볼 수 있는 작업은 데이터를 처리하고 데이터베이스에 저장하며 데이터를 수정하고 필요할 때 데이터를 검색하는 것이다.
나는 간단한 실용 프로그램 라이브러리를 구축하여 CRUD 조작(파일과 데이터) + 신분 검증을 도울 수 있다.
설치:
simple-firebase.js
을 공용 폴더에 다운로드합니다(거기에서 파일을 컴파일합니다).simple-firebase.js
(firebase
대상은 전역적으로 사용할 수 있어야 함).
<!-- update the version number as needed or add files from gstatic -->
<script defer src="/__/firebase/8.2.2/firebase-app.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/8.2.2/firebase-auth.js"></script>
<script defer src="/__/firebase/8.2.2/firebase-firestore.js"></script>
<script defer src="/__/firebase/8.2.2/firebase-storage.js"></script>
<!-- make sure you use the emulator for debuging -->
<script defer src="/__/firebase/init.js?useEmulator=true"></script>
<script defer src="path/to/simple-firebase.js"></script>
f
항목에서 다음을 수행할 수 있습니다.firebase
방문f.FBS
을 통해.firebase.firestore()
방문f.DB
을 통해.firebase.auth()
방문f.AUTH
을 통해.firebase.storage()
액세스를 통해f.STORE
.f
아래의 거의 모든 함수는 약속입니다. 함수에 대해 await
또는 then
문법을 사용할 수 있습니다.문서 추가
let myDoc = {
"_id": "my_unique_id",
"field_1": "value_1",
"field_2": "value_2"
}
let custom_id = await f.add("collectionName", myDoc)
이렇게 하면 새 컬렉션이 만들어지고(없는 경우) 사용자 정의 IDmyDoc
를 사용하여 추가됩니다"_id"
.ID가 이미 있으면 기존 데이터가 새 데이터로 바뀝니다.
let myDoc1 = {
"field_1": "value_1",
"field_2": "value_2"
}
let generated_id = await f.add("collectionName", myDoc1)
위 코드는 새 집합을 만들고 Firebase에서 자동으로 생성한 ID를 사용하여 추가합니다 myDoc1
.문서의 두 가지 상황에 대해 "id"필드를 만듭니다(MongodB Atlas와 유사).
add
메서드는 다른 작업을 수행할 수 있도록 생성된 문서의 ID를 반환합니다.파일 업데이트
let myOldDoc = {
"field_1": "value_1"
}
let myNewDoc = {
"field_1": "value_1_updated"
}
let updated_ids = await f.update("collectionName", myOldDoc, myNewDoc)
이것은 field_1
의 새 값으로 집합 value_1
의 field_1
문서를 업데이트할 것입니다.찾지 못하면 업데이트가 건너뛰고 field_1
빈 목록이 됩니다.
let myNewDoc1 = {
"_id": custom_id,
"field_2": "value_2_updated"
}
let updated_id = await f.update("collectionName", myNewDoc1)
이렇게 하면 지정된 문서updated_ids
를 사용하여 문서가 업데이트됩니다.문서 찾기
let fDoc = {
"field_2": "value_2_updated"
}
let docList = await f.find("collectionName", fDoc)
"_id"
방법은 find
에서 모든 문서를 얻을 것이다. 그 중에서 collectionName
의 값은 field_2
이다.value_2_updated
방법의 세 번째 파라미터는 조회 파라미터이고 기본적으로 find
이다.
let doc = await f.find("collectionName", custom_id)
또한 문서 ID를 사용하여 컬렉션에서 문서를 가져올 수도 있습니다.파일 삭제
let dDoc = {
"field_2": "value_2_updated"
}
let deleted_ids = await f.delete("collectionName", dDoc)
==
방법은 delete
의 모든 문서를 삭제하는데 그 중에서 collectionName
의 값은 field_2
이다.
let deleted_id = await f.delete("collectionName", IDToDelete)
그러면 지정된 ID가 있는 문서만 삭제됩니다.파일 업로드
let downloadData1 = await f.uploadFile(afile)
value_2_updated
방법의 결과는 다음과 같은 json 대상이다.{
path: "/files/hkvyljlrzcf_Screenshot from 2020-12-23 13-04-57.png",
downloadURL: "https://firebasestorage.googleapis.com/v0/b/other-data/token=etc"
}
URL은 나중에 uploadFile
또는 지정된 path
구조에서 다운로드할 수 있습니다.기본적으로 파일은
downloadURL
이라는 폴더에 자동으로 업로드되며, 파일이 덮어쓰지 않도록 접두사 id가 붙습니다.메서드parameterfiles
generateID
부터 uploadFile
까지)를 false
로 설정하여 자동으로 생성된 ID를 비활성화할 수 있습니다.필요한 경우 사용자 정의folder
또는 fileName
도 설정할 수 있습니다.
let downloadData = await f.uploadFile(
fileObj,
folder=undefined,
fileName=undefined,
generateID=true
)
파일 삭제
await f.deleteFile(downloadData1.path)
인증
사용자 인증 상태 확인
let logged
f.AUTH.onAuthStateChanged(user => {
if (user) logged = true
else logged = false
})
logged
변수를 선택한 프런트엔드 프레임의 스토리지에 저장합니다.잠시 후
logged
변수에 따라 사용자가 로그인했는지 확인할 수 있습니다.로그인/가입 사용자(페이스북, 구글 사용)
f.facebookLogin()
// OR
f.googleLogin()
이 방법은 자동으로 users
집합을 만들고 사용자 id (uid
를 사용하여 전자 우편과 이름을 문서에 저장합니다.사용자 로그아웃
f.logoutUser()
인증된 사용자 삭제
f.deleteUser()
More features are coming! Checkout this repo
Reference
이 문제에 관하여(Firebase가 굉장히 간단하게 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/climentea/firebase-made-super-easy-3lhl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)