Firebase 클라우드 기능, Firebase 백엔드 패키지는 Filled Stacks에서 제공
10188 단어 serverlessfirebasetypescriptflutter
소개하다.
본고에서 우리는 firebase-backend을 통해 FilledStacks팩을 어떻게 사용하는지 이해할 것이다.왜 이 소프트웨어 패키지가 존재합니까? 우리는 왜 그것을 사용해야 합니까?이 장면에서 당신의 응용 프로그램에 많은 클라우드 기능이 있을 것이다. 당신은 그것들을 자신의 단독 파일로 내보낼 수 있지만, 이것은 매우 도전적일 수도 있고, 어떤 방식으로 구조 설계를 해야 할 수도 있다. 이것은 당신에게 유지보수가 가능하고 더욱 쉽다.Firebase 백엔드 패키지는 이 문제를 처리하지만, 우리는 반드시 어떤 약속을 따라야 합니다. 그렇지 않으면 구축 과정에서 사용자가 정의한 기능을 식별할 수 없고 배치할 수 없습니다. 이것은 Firebase 백엔드가 내가 보기에 고집스럽다는 것을 의미합니다.
Dane Mackier는Fireship의 유튜브 채널에서 이 패키지의 동영상 튜토리얼을 설명했습니다. 만약 당신이 아직 동영상을 보지 못했다면, 여기에 당신이 볼 수 있는 링크가 있습니다.
또한Firebase와 Flatter에 고품질의 콘텐츠를 제공할 수 있도록 구독과 채널을 꼭 구독해 주십시오!
그렇지 않으면, 만약 당신이 이곳에서 공부하는 것을 좋아한다면, 계속 읽으세요!
장치
콘솔과 코드 라이브러리에 Firebase 프로젝트를 만들었다고 가정하지만 클라우드 기능을 사용하려면 Firebase Blaze plan을 사용해야 합니다.지금부터 시작하겠습니다.
루트 디렉토리에 있는 경우 NPM을 통해 패키지를 설치합니다.
$ npm install firebase-backend
완료되면 index.ts
또는 index.js
파일을 계속 설치할 수 있습니다.하지만 이 문서에서 TypeScript를 선택하므로 firebase-backend
에 index.ts
패키지를 설치할 예정입니다.import { FunctionParser } from "firebase-backend";
import * as admin from "firebase-admin";
admin.initializeApp();
exports = new FunctionParser(__dirname, exports).exports;
여기서 FunctionParser
에서 firebase-backend
을 가져오고 Firestore와 Admin SDK를 사용한다고 가정하면 firebase-admin
도 가져옵니다.이것은 우리가 admin.initializeApp()
으로 관리자를 초기화한 유일한 곳이다그리고
exports
에서 내보낸 반환값으로 FunctionPaser
을 설정합니다.파일 구조
이 패키지를 사용할 때, 파일 구조는 기능 기반 구조에 있고, REST 노드인지 Firestore 조회 (onCreate, onDelete, onUpdate, onWrite) 를 기반으로 하는 이벤트 구동 클라우드 함수인지 두 개의 하위 디렉터리가 구분됩니다.
src/
- orders
- reactive
- onOrderCreated.function.ts
- restful
- confirmOrder.endpoint.ts
index.ts
orders
은 기능 폴더로 reactive
하위 디렉터리와 restful
하위 디렉터리를 포함한다.이 중 reactive
은 이벤트 구동으로Firestore 조회의 변경 사항을 감청하고 restful
하위 디렉터리는 우리의 REST 단점으로 지정된 HTTP 방법(GET, POST, PUT, DELETE 등)을 통해 접근할 수 있습니다.보시다시피
reactive
폴더에서 우리는 파일을 onOrderCreated.function.ts
으로 명명했는데 그 중에서 onOrderCreated
은 클라우드 함수 이름이고 function
은 FunctionParser에게 클라우드 함수라고 알려줄 것입니다. 코드에서도 onOrderCreated
이라고 부릅니다.onOrderCreated.기능ts
import * as functions from "firebase-functions";
exports.onOrderCreated = functions.firestore
.document('orders/{orderId}')
.onCreate((snapshot, context) => {
// code
})
또 다른 방법은,import * as functions from "firebase-functions";
export const onOrderCreated = functions.firestore
.document('orders/{orderId}')
.onCreate((snapshot, context) => {
// code
})
확인자.종점ts
현재 REST 노드를 만들기 위해
Endpoint
에서 firebase-backend
과 매거 RequestType
을 가져오고 HTTP 방법을 사용하여 노드에 접근해야 하는지 알려 줍니다import { Request, Response } from "express";
import { RequestType, Endpoint } from "firebase-backend";
export default new Endpoint(
"confirmOrder/:id",
RequestType.PATCH,
(request: Request, response: Response) => {
const params = request.params
response.status(200).json({ message: `Order confirmed for ID ${params.id}` })
})
이것이 바로 우리가 클라우드 함수와 REST 단점을 정의하는 방식이다구축 및 배포
다른 작업을 수행하기 전에
rimraf
을 설치하고 package.json
파일을 구성해야 합니다.이제
rimraf
을 다음과 같은 방법으로 개발자 종속 항목으로 설치합니다.npm i -d rimraf
그리고 스크립트에서 package.json
을 수정하도록 하겠습니다."scripts": {
...
"clean": "rimraf lib/",
"prebuild": "npm run clean",
},
이제 "clean"과 "prebuild"를 추가하면 구축을 실행할 때마다 "prebuild"를 실행합니다.완료되면 시뮬레이터를 시작하고 테스트를 진행하거나 클라우드 기능을Firebase 서버에 배치할 수 있습니다.
결론
firebase-backend
패키지는 우리가 클라우드 기능을 위해 생산급 코드를 구축하는 데 도움을 주었다. 이것은 우리의 클라우드 기능이 유지보수적이고 읽을 수 있으며 디버깅하기에 매우 적합하다는 것을 의미한다. 왜냐하면 우리가 어떻게 이름을 지었는지, 그리고 firebase-backend
이 어떻게 우리를 이렇게 하도록 격려했는지 말이다.이것은 여전히 FilledStacks의 새로운 패키지이지만, 틀림없이 아주 좋은 패키지일 것이다. 나는 그것으로 나의 모든 응용 프로그램을 만들 것이다.
FilledStacks는 항상 저에게 인상적입니다. 그래서 만약에 플래터를 좋아한다면 반드시 https://www.filledstacks.com/을 보십시오.
이것이 바로 내가 가진 모든 것이다. 당신이 시간을 내서 이 글을 읽어 주셔서 감사합니다. 나는 매우 고맙습니다. 만약 이것이 당신에게 도움이 된다면 나도 매우 기쁩니다.건배!
Reference
이 문제에 관하여(Firebase 클라우드 기능, Firebase 백엔드 패키지는 Filled Stacks에서 제공), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/carlomigueldy/firebase-cloud-functions-with-firebase-backend-package-by-filledstacks-4k2l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)