これから何回に分けて ionic というアプリケーションフレームワークを使用して、Web/iOS/Android アプリ全てを同時に開発するチュートリアルを作成していきたいと思います。
チュートリアルと言っていますが備忘録的な側面もあるので、何かおかしい点などがありましたら是非ご指摘ください。
第 1 回目は、バックエンド側で Firebase Functions を使用して Graphql サーバーを構築していきたいと思います。
Firebase コンソールから、任意のプロジェクトを作成します。 firebase のコマンドラインを global にインストールします。
npm install -g firebase-toolsインストールが確認出来たら、ターミナルから firebase にログインします。
firebase loginメールアドレスとパスワードを入力してログインします。
ログインが確認出来たら、ローカルのディレクトリを Firebase と接続します。
firebase init? Which Firebase CLI features do you want to set up for this folder? Press Space to select features, then Enter to confirm your choice s. (Press
to selec… 
使用する Firebase のサービスをスペースキーで選択します。今回は Firestore Functions Hosting Storageを選択して Enter キーで進みます。
? Please select an option: (Use arrow keys)
Use an existing project を選択して最初にFirebase コンソールで作成したプロジェクトを選択します。
この後の設定は全て yes または、Enter キーで進みます。(細かい設定は必要があれば後で設定します)
※今回のチュートリアルは Typescript を使うので同じように進めたければ、Typescript を選択してください。
Nestjs のコマンドラインをドキュメントサイトを参考にインストールします。
npm i -g @nestjs/cli一度、現状の /functions ディレクトリを削除して Nestjs のコマンドラインでプロジェクトを作成します。
rm -rf functions
nest new functionsNestjs で Graphql 使用するために必要なパッケージをインストールします。
cd functions
npm i --save @nestjs/graphql graphql-tools graphql apollo-server-express type-graphqlGraphql を使用するためにメインモジュールを初期化します.
Module 作成します Code
nest generate module usersModel を作成します Code
nest generate class users/userService を作成します Code
nest generate service usersresolver を作成します Code
nest generate resolver users接続に必要なパッケージをインストールします。
npm i --save firebase-admin firebase-functionsエントリーポイントを変更する必要があるので、いくつかファイル作成・修正します。
Firebase のエントリーポイントを Package.json に作成します。
コードをコンパイルして動作を確認します。
npm run buildfirebase serve --only functionslocalhost で Play graoud で表示・動作確認します。
あとは、デプロイするだけです。
firebase deploy --only functions今回作成したコードはこちらにありますのでご参考ください Github リポジトリ