Firebase セットアップ

Firebase セットアップ

実行環境
M1 MacbookAir 16GB

1
npm install -g firebase-tools

でFirebase CLIをインストール

次に料金体系などを調べておく
これは以前、従量課金でワトソンを使ったら
後で数万円の請求が来たことがあるので
調べるようにしている

使うのは無料枠にする

chatGPTの回答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Firebaseの無料枠と料金プランについて説明します。
Firebaseの無料枠 (Sparkプラン)
Firebaseには無料で利用できるSparkプランがあり、主に以下のサービスに対して無料枠が提供されています:
1. Firebase Hosting:
    * 1GBのストレージ
    * 10GB/月のデータ転送量
2. Firestore (NoSQL データベース):
    * 1GBのストレージ
    * 50,000 回/月の読み取り操作
    * 20,000 回/月の書き込み操作
    * 20,000 回/月の削除操作
3. Realtime Database:
    * 100MBのストレージ
    * 1GB/月のデータ転送量
4. Firebase Authentication:
    * 無制限の認証 (メール/パスワード、匿名、Google、Facebook、Twitterなど)
5. Firebase Cloud Functions:
    * 125,000呼び出し/月
    * 400,000GB-秒の計算時間/月
    * 5GBの出力データ転送量/月
6. Firebase Cloud Messaging:
    * 無制限のプッシュ通知 (送信数に制限なし)
7. Firebase Cloud Storage:
    * 1GBのストレージ
    * 5GB/月のデータ転送量
その他の注意点
* Firebase Authentication はSparkプランで無制限に利用できますが、電話認証(SMS認証)については無料枠があり、それを超えると従量課金が発生します。

次に

Firebase CLIのインストール

Firebase Hostingの設定があったので
有効にしているようだが使わない場合はどうなるか?
を調べる

今回のように、**WebhookサーバーとしてFirebaseを使用する場合、Firebase Hostingは必須ではありません**。Webhookサーバーを構築するためには、主に次のFirebase機能を使用します:

1. **Firebase Cloud Functions**:
– Webhookのエンドポイントを作成するために使用します。Cloud Functionsを使えば、サーバーレスでスケーラブルなWebhookサーバーを簡単にセットアップできます。

2. **Firebase Firestore(またはRealtime Database)**:
– 必要に応じて、Webhookからのデータを保存するために使用します。例えば、音声データのテキスト変換結果や、ユーザーアクションのログを記録するなどの用途です。

### Firebase Hostingが必要ない理由

– **サーバーレスアーキテクチャ**:
– WebhookサーバーのエンドポイントはCloud Functionsで処理されるため、物理的なサーバーや特定のホスティング環境は不要です。

– **静的コンテンツがない**:
– Webhookサーバーは、通常、静的なウェブページを提供するわけではなく、リクエストを受け取って処理するだけのエンドポイントを提供します。したがって、静的コンテンツをホストする必要がない場合、Firebase Hostingは無関係です。

### まとめ

WebhookサーバーをFirebase Cloud Functionsで実装する場合、Firebase Hostingは必要ありません。Firebase Hostingは主に静的ウェブサイトやSPA(シングルページアプリケーション)の公開に使用されるため、Webhookサーバーの構築には直接関係がありません。

そのため、今回はFirebase Hostingを有効にしなくても、Webhookサーバーとしての機能は十分に提供されます。Firebase Cloud Functionsと、必要に応じてFirestoreなどの他のFirebaseサービスを組み合わせて使用すれば、要件を満たすことができます。

ということなので
使うのは
Firebase Cloud Functions
Firebase Firestore(またはRealtime Database)
ということになる

firebase functions(バックエンドサービス)を使うなら
nodeは18 or 20(public beta)が必要らしい

Firebase Functions(Cloud Functions for Firebase)を使用する場合、
現在サポートされているNode.jsのバージョンは18と、最近追加された20(パブリックベータ版)です。
これはFirebaseが提供する最新の機能やセキュリティ強化のためです。

### Firebase FunctionsでのNode.jsバージョンの要件

1. **Node.js 18**:
– これは現在のデフォルトでサポートされている安定版のNode.jsバージョンです。Node.js 18は長期サポート(LTS)リリースであり、セキュリティやパフォーマンスの向上が期待されます。
– Firebase CLIを使用して新しいCloud Functionsプロジェクトを作成する場合、デフォルトでNode.js 18が使用されます。

2. **Node.js 20 (Public Beta)**:
– Node.js 20は最新の機能を試すためのパブリックベータ版として提供されています。新しい言語機能やパフォーマンスの改善が含まれていますが、ベータ版であるため、プロダクション環境での使用には慎重になる必要があります。
– Node.js 20を使用するには、Firebaseプロジェクトの設定で明示的に指定する必要があります。

### Node.jsバージョンを指定する方法

`firebase-functions`のNode.jsバージョンを指定するには、`package.json`ファイルで指定します。以下の例のように設定してください。

1
2
3
4
5
6
7
```json
{
  "engines": {
    "node": "18"
  }
}
```

または、Node.js 20を使用したい場合は:

1
2
3
4
5
6
7
```json
{
  "engines": {
    "node": "20"
  }
}
```

### まとめ

– Firebase Functionsで最新の機能とセキュリティを利用するためには、
Node.js 18が推奨されており、これは現在のデフォルトです。
– Node.js 20はパブリックベータ版であり、新しい機能を試したい場合に利用できますが、
プロダクション環境での使用には慎重を要します。
– `package.json`でNode.jsのバージョンを明示的に指定することで、
使用するNode.jsバージョンをコントロールできます。

この情報に基づいて、プロジェクトの要件に最も適したNode.jsのバージョンを選択し、
Firebase Functionsを利用してください。

1
2
3
既に
npm install -g firebase-tools
 を実行しているが nvm install 20 nvm use 20 の後に再度実行する必要があるか?

の答えは

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Node.jsのバージョンを変更した後、
`npm install -g firebase-tools`を再度実行する必要は**通常ありません**。
以下に、状況を整理してお答えします。
 
### なぜ再インストールが不要か
 
- **グローバルインストール**: `npm install -g firebase-tools`でインストールした`firebase-tools`は、グローバルにインストールされているため、Node.jsのバージョンに依存せず、システム全体で利用できます。
- **互換性**: Firebase CLIは通常、異なるNode.jsのバージョンで互換性があります。したがって、Node.jsのバージョンを切り替えた後でも、既にインストールされているFirebase CLIが動作します。
 
### nvmでNode.jsのバージョンを変更した場合の注意点
 
1. **パッケージの互換性**:
   - Node.jsのバージョンを切り替えた場合、特定のプロジェクトが新しいNode.jsバージョンで動作しない場合があります。この場合、プロジェクトの依存関係(`node_modules`)を再インストールする必要がありますが、これは`firebase-tools`の再インストールとは関係ありません。
 
2. **環境設定**:
   - `nvm use 20`でNode.js 20を使用するようにした場合、シェルセッション内でそのバージョンが有効になります。このシェルセッション内で`firebase-tools`コマンドを使用することに問題はありません。
 
### Firebase CLIのバージョンを確認する方法
 
Firebase CLIのバージョンが適切に動作しているか確認したい場合、以下のコマンドでバージョンを確認できます。
 
```bash
firebase --version
```
 
### まとめ
 
- `nvm`でNode.jsのバージョンを切り替えた後に、`firebase-tools`を再インストールする必要は通常ありません。
- Firebase CLIはグローバルにインストールされているため、Node.jsのバージョンを変更しても利用できます。
- `firebase --version`でCLIのバージョンが正常に動作しているかを確認してください。
 
これにより、`nvm`でのNode.jsバージョンの切り替えとFirebase CLIの使用が円滑に行えるはずです。

とのこと

つまり
WebhookサーバーとしてFirebaseを使用する場合
Firebase Cloud Functionsが必要
これを使用するには
Node.js 20 (Public Beta)
が必要

chatGPTでは

1
nvm install 20

となっているが
実行すると

1
zsh: command not found: nvm

M1macにインストールした時には

1
nodebrew install-binary stable


v22.7.0
がインストールされている

ちなみにバージョンを指定するので

1
nodebrew ls-remote

で調べると
20の場合は

1
2
3
4
v20.0.0  v20.1.0  v20.2.0  v20.3.0  v20.3.1  v20.4.0  v20.5.0  v20.5.1
v20.6.0  v20.6.1  v20.7.0  v20.8.0  v20.8.1  v20.9.0  v20.10.0 v20.11.0
v20.11.1 v20.12.0 v20.12.1 v20.12.2 v20.13.0 v20.13.1 v20.14.0 v20.15.0
v20.15.1 v20.16.0 v20.17.0

となっている

今回は

v20.17.0
をインストールするので

1
nodebrew install-binary v20.17.0

結果は

1
2
3
Fetching: https://nodejs.org/dist/v20.17.0/node-v20.17.0-darwin-arm64.tar.gz
######################################################################### 100.0%
Installed successfully

使用バージョンを変更

1
2
nodebrew use v20.17.0
use v20.17.0

確認のため

1
node -v

とすれば

1
v20.17.0

となる

1
nodebrew ls

の結果は

1
2
3
4
v20.17.0
v22.7.0
 
current: v20.17.0

でインストールされているバージョンも確認

ここまでできたので
ゼロから始めるFirebase入門

を参考に

1
firebase login

としたら

1
zsh: command not found: firebase

となる
chatGPTでは再度実行不要と言っていたけど

1
npm install -g firebase-tools

を実行しインストール

1
firebase --version

を実行すると

1
13.16.0

と表示される

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です