Nuxt.js에서 Cloud Functions for Firebase onCall을 호출했습니다.

개발하고 있는 적독용의 독서 관리 서비스 로 일부 Functions로 처리하고 있는 부분이 있다,https.onRequest() 를 이용하고 있지만, https.onCall() 쪽이 빠른 것 같다.
그래서 앱에서만 사용하는 함수를 https.onCall() 로 구현했을 때의 비망록.

Nuxt.js에서 Cloud Functions for Firebase를 onCall을 통해 호출하는 예제.

onCall의 함수는 이런 느낌


msg 를 받고 msg 를 반환하는 echo 함수의 예.
공식 문서에 대한 설명은 여기
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();

exports.echo = functions.https.onCall(async (data, context) => {
  // 引数の取得
  const msg = data.msg;

  // 認証情報の取得
  const uid = !!context.auth ? context.auth.uid : "";

  console.info(`uid=${uid}, msg=${msg}`);

  // 返り値の返却
  return { msg: msg }
});
context.auth로 인증 정보를 얻을 수 있으므로,
함수를 호출 할 수있는 사용자를 제한 할 수도 있습니다.

만든 onCall 함수를 앱에서 호출



이런 느낌.
이런 파일을 준비해 두고 await doEcho()를 부르면,
onCall을 통해 Functions의 함수를 호출할 수 있다.
import * as firebase from "firebase/app";
import "firebase/functions";

// firebaseの初期化。
if (!firebase.apps.length) {
  const config = "...";
  if (config) firebase.initializeApp(config);
}

// functionsのインスタンスを取得
const functions = firebase.functions();


export default async function doEcho(msg:string): Promise<string> {
  // 作った関数のインスタンスを取得
  const func = functions.httpsCallable("echo");

  // 作った関数の実行
  const res = await func({ msg: "なんかのメッセージ" });

  // 返り値のmsgを取得&返却
  return res.msg
}

로컬 PC에서 실행하기가 어렵습니다 ...



만든 함수를 개발중인 앱에서 실행할 때,useFunctionsEmulator 를 사용하면 좋은 느낌.

이렇게 하면 호출되는 함수의 로컬 PC로 변경할 수 있다.
// functionsのインスタンスを取得
const functions = firebase.functions();
if (process.env.NODE_ENV != "productions") {
  functions.useFunctionsEmulator("http://localhost:5000");
}

이런 식으로, useFunctionsEmulator 를 설정한 다음,
  • firebase serve --only functions 에서 function 시작
  • nuxt에서 Nuxt.js 앱 시작

  • 그러면 Nuxt.js가 로컬에서 시작한 Functions를 참조하게 된다.
    이것으로 개발할 때도 안심(´ω`)

    결론



    앱에서 사용하는 것만으로는 onCall이 빠르고 멋진 ( 'ω`)
    적독 하우 매치은 Nuxt.js+Firebase에서 개발 중입니다!



    만약 좋으면 놀아보세요 ヽ(=´▽`=)노

    요청, 감상, 조언 등이 있다면,
    공식 계정( @MemoryLoverz )과 개발자( @kira_puka )까지.

    참고로 한 사이트


  • Firebase HTTPS callable function 사용해보기 - Qiita
  • 앱에서 함수 호출  |  Firebase
  • https.onCall 프로토콜 사양  |  Firebase
  • 로컬에서 함수 실행  |  Firebase
  • How to test functions.https.onCall firebase cloud functions locally? - Stack Overflow
  • Firebase Functions의 https 트리거 기능을 특정 사람에게서만 허용하도록 제한하고 싶습니다.
  • 좋은 웹페이지 즐겨찾기