Functions 을 실행시키는 방법은 onCall과 onRequest가 있다. 차이점은 호출 방식에 차이가 있는데, onCall은 클라이언트의 firebase.functions()를 통해 호출하고 onRequest는 표준 https request 방식이다. 따라서 onCall은 앱 안에 Firebase Cloud Functions SDK를 설치해야하고 firebase functions 패키지를 필요로한다. onCall이 좀 더 함수처럼 동작한다. 자세한 정보는 onCall 공식 문서, onRequest 공식 문서 를 참고하자.
[Flutter] Firebase Cloud Functions 세팅 저번 글에 이어 진행하는 것이기 때문에 기본적으로 Firebase Cloud Funcions 세팅이 완료되어야 합니다.
- cloud_functions: ^3.2.6 사용하였습니다.
// 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;
});
},
Cloud Firestore 트리거, 데이터베이스 트리거 공식문서를 확인해보면 onCreate, onUpdate, onDelete, onWrite 핸들러를 통해 해당 경로에 대한 모든 유형의 변경사항을 수신 대기할 수 있다고 한다.
추가로 함수 예약 문서를 확인해보면 지정된 시간에 실행하도록 함수를 예약할 수 있다고 한다. 예를 들어 자동으로 하루에 한번씩 함수를 돌려 데이터를 확인하고 수정할 수 있다.