m_shige1979のささやかな抵抗と欲望の日々

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(注意すること)

https://github.com/mshige1979

firebaseのfunctionsを作成してみた

firebase

Google用のサービスのBaasみたいのようです。
無料プランもあるので簡単にお試ししてみました。

functionとは

APIとかを作成できるサービス
サポートしているものはJavascript及びTypeScriptのようです。

準備

Nodejs(v6.11.5)

手順

firebaseツールのインストール
npm install -g firebase-tools

※使用環境に応じてsudoコマンドを設定する必要があります

ログイン
firebase login

※webブラウザが起動し、googleアカウントの選択及び、権限許可を求められるため設定します。

f:id:m_shige1979:20180310125045p:plain
f:id:m_shige1979:20180310125055p:plain
f:id:m_shige1979:20180310125105p:plain

以下へアクセスし任意のアプリを作成する

https://console.firebase.google.com/
f:id:m_shige1979:20180310125303p:plain

アプリ作成

ディレクトリ作成
mkdir -p work/firebase_samples/sample_test1
cd work/firebase_samples/sample_test1
アプリ初期化
firebase init functions
対象のプロジェクトを選択
? Select a default Firebase project for this directory:
  [don't setup a default project]
❯ sample-test01 (sample-test01)
  [create a new project]
各問い合わせ設定
? What language would you like to use to write Cloud Functions? JavaScript
? Do you want to use ESLint to catch probable bugs and enforce style? Yes
? What language would you like to use to write Cloud Functions? (Use arrow keys)
ファイル編集

functions/index.js

onst functions = require('firebase-functions');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.sampleapp1 = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase! Sample App1");
});
デプロイ
firebase deploy --only functions

✔  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (2.35 KB) for uploading
✔  functions: functions folder uploaded successfully
i  functions: creating function sampleapp1...
✔  functions[sampleapp1]: Successful create operation.
Function URL (sampleapp1): https://us-central1-sample-test01.cloudfunctions.net/sampleapp1

✔  Deploy complete!

Project Console: https://console.firebase.google.com/project/sample-test01/overview
結果
curl https://us-central1-sample-test01.cloudfunctions.net/sampleapp1
Hello from Firebase! Sample App1