[Flutter] Firebase Cloud Functions 사용
Functions 을 실행시키는 방법은 onCall과 onRequest가 있다. 차이점은 호출 방식에 차이가 있는데, onCall은 클라이언트의 firebase.functions()를 통해 호출하고 onRequest는 표준 https request 방식이다. 따라서 onCall은 앱 안에 Firebase Cloud Functions SDK를 설치해야하고 firebase functions 패키지를 필요로한다. onCall이 좀 더 함수처럼 동작한다. 자세한 정보는 onCall 공식 문서, onRequest 공식 문서 를 참고하자.
0. Cloud Functions 세팅
[Flutter] Firebase Cloud Functions 세팅 저번 글에 이어 진행하는 것이기 때문에 기본적으로 Firebase Cloud Funcions 세팅이 완료되어야 합니다.
- cloud_functions: ^3.2.6 사용하였습니다.
1. onCall, onRequest
[Flutter] Firebase Cloud Functions 세팅 저번 글에 이어 진행하는 것이기 때문에 기본적으로 Firebase Cloud Funcions 세팅이 완료되어야 합니다.
- cloud_functions: ^3.2.6 사용하였습니다.
- 다음 코드로 onCall, onRequest 테스트 두 가지를 해볼 것이다.
- firebase deploy --only "functions:FunctionsName" 을 통해 함수를 배포해주자.
- call request 버튼을 누르면 helloWorld 를 요청해 "Hello from Firebase!" data를 불러와 TEST에 세팅해주고 add Count 버튼을 클릭하면 addCount functions 를 호출해 count를 + 1 증가시키고 return 시킨다.
// call request
onTap: () async {
final HttpsCallableResult result = await FirebaseFunctions
.instance
.httpsCallable('helloWorld')
.call();
setState(() {
testValue = result.data;
});
},
// add Count
onTap: () async {
final HttpsCallableResult result = await FirebaseFunctions
.instance
.httpsCallable("addCount")
.call(<String, dynamic>{'count': count});
print(result.data);
setState(() {
count = result.data;
});
},
2. 결과화면
- onCall, onRequest 정상적으로 작동하는 것을 확인할 수 있다.
3. Cloud Firestore, 데이터베이스 트리거
Cloud Firestore 트리거, 데이터베이스 트리거 공식문서를 확인해보면 onCreate, onUpdate, onDelete, onWrite 핸들러를 통해 해당 경로에 대한 모든 유형의 변경사항을 수신 대기할 수 있다고 한다.
Cloud Firestore 트리거, 데이터베이스 트리거 공식문서를 확인해보면 onCreate, onUpdate, onDelete, onWrite 핸들러를 통해 해당 경로에 대한 모든 유형의 변경사항을 수신 대기할 수 있다고 한다.
- Firestore의 test collection 에 문서가 생성되면 log 가 찍히는 것을 확인해보려 한다.
- firebase deploy --only "functions:FunctionsName" 을 통해 함수를 배포해주자.
- firestore에 데이터를 추가하면 onCreate 함수가 트리거되고 log 가 찍히는 모습을 확인할 수 있다.
추가로 함수 예약 문서를 확인해보면 지정된 시간에 실행하도록 함수를 예약할 수 있다고 한다. 예를 들어 자동으로 하루에 한번씩 함수를 돌려 데이터를 확인해서 수정할 수 있다.
실제 프로젝트에서 쓰려면 이런 간단한 코드가 아닌 더 복잡한 코드가 오겠지만 Functions 기능 자체로 봤을 때 활용도가 높은거 같고 익숙해진다면 쓰기도 어렵지 않은 거 같다.
끝:)
Author And Source
이 문제에 관하여([Flutter] Firebase Cloud Functions 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leedool3003/Flutter-Firebase-Cloud-Functions-사용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)