Firebase가 굉장히 간단하게 만들었어요.

대량의 사이트 건설자와 전단 자바스크립트 프레임워크를 가진 세계에서 시간의 추이에 따라 백엔드 개발은 점점 쉬워진다.

BaaS(백엔드 as a Service)란 무엇입니까?
BaaS는 인증, 데이터베이스, 호스트 및 기타 전방 프레임워크(예를 들어 React, Vue 또는 순수 자바스크립트)에 쉽게 연결할 수 있는 기능을 제공함으로써 백엔드 개발을 간소화하려고 한다.
Firebase를 제외하고 다른 BaaS 소스 공급 대체품도 있다. 예를 들어 parseplatform, appwritesupabase이다.

간단한 Firebase 소개
모든 응용 프로그램에서 가장 흔히 볼 수 있는 작업은 데이터를 처리하고 데이터베이스에 저장하며 데이터를 수정하고 필요할 때 데이터를 검색하는 것이다.
나는 간단한 실용 프로그램 라이브러리를 구축하여 CRUD 조작(파일과 데이터) + 신분 검증을 도울 수 있다.

설치:
  • 파일 simple-firebase.js 을 공용 폴더에 다운로드합니다(거기에서 파일을 컴파일합니다).
  • Firebase 초기화 후 추가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.
  • Firestore에서 다음을 수행합니다.
  • 집합은 표와 유사하다.
  • 문서는 표 줄과 유사하다.
  • 필드는 열과 유사합니다.
  • 한 집합에 여러 개의 문서가 있을 수 있는데 마치 한 표에 여러 줄이 있을 수 있는 것과 같다.
  • 각 문서에는 테이블의 행마다 ID가 있는 것처럼 ID가 있습니다.
  • 집합은 무한한 자 집합이 있을 수 있다.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_1field_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가 붙습니다.메서드parameterfilesgenerateID부터 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

    좋은 웹페이지 즐겨찾기