Firebase の設定
実行環境
M1 MacbookAir 16GB
ゼロから始めるFirebase入門
を参考に
Firebaseの設定をしていく
まず
https://console.firebase.google.com/
にアクセスし
新規プロジェクトを作成する
_とかはプロジェクト名に使えない
自身の取引、ビジネス、仕事、または職業のみを目的として Firebase を利用することを正式に認めます。
にチェックを入れる
Google アナリティクス
はとりあえず有効にしておく
Google アナリスティクスアカウントの選択は
Default Account For Firebase
でよいらしい
Vue.js/vue-cli を Google Firebase にデプロイする
を参考にした
これで準備ができました
とでたら
続行をクリック
これでFirebaseプロジェクトのダッシュボードが憑依される
次にFirebase CLI のインストール
npm install -g firebase-tools
を実行したが
zsh: command not found: npm
となる
【初心者向け】zsh: command not found: npm がでた時の対処法
を参考に
brew -v
でバージョン確認
Homebrew 4.3.15
次に
nodebrewのインストール
実行すると
==> Auto-updating Homebrew... Adjust how often this is run with HOMEBREW_AUTO_UPDATE_SECS or disable with HOMEBREW_NO_AUTO_UPDATE. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ==> Auto-updated Homebrew! Updated 2 taps (homebrew/core and homebrew/cask). ==> New Formulae asm6809 go@1.22 packcc boost@1.85 gql pcaudiolib crow http-server-rs pgcopydb dwarfs kea tevent fast_float kubernetes-cli@1.30 tmpmail flexiblas ldb truetree gabo mariadb@11.4 ufbt ==> New Casks kindle-create localcan nrf-connect You have 27 outdated formulae installed. Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)! To rerun under ARM use: arch -arm64 brew install ... To install under x86_64, install Homebrew into /usr/local.
となるので
arch -arm64 brew install nodebrew
で再度実行
==> Downloading https://ghcr.io/v2/homebrew/core/nodebrew/manifests/1.2.0-1 ######################################################################### 100.0% ==> Fetching nodebrew ==> Downloading https://ghcr.io/v2/homebrew/core/nodebrew/blobs/sha256:bd835b02e ######################################################################### 100.0% ==> Pouring nodebrew--1.2.0.all.bottle.1.tar.gz ==> Caveats You need to manually run setup_dirs to create directories required by nodebrew: /opt/homebrew/opt/nodebrew/bin/nodebrew setup_dirs Add path: export PATH=$HOME/.nodebrew/current/bin:$PATH To use Homebrew's directories rather than ~/.nodebrew add to your profile: export NODEBREW_ROOT=/opt/homebrew/var/nodebrew zsh completions have been installed to: /opt/homebrew/share/zsh/site-functions ==> Summary 🍺 /opt/homebrew/Cellar/nodebrew/1.2.0: 9 files, 43.2KB ==> Running `brew cleanup nodebrew`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
と表示される
パスを通す必要があるので
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc source ~/.zshrc
次に
nodebrew ls-remote
でインストールできるnode.jsのバージョンを確認
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6 v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15 v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23 v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31 v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95 v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103 v0.1.104 v0.2.0 v0.2.1 v0.2.2 v0.2.3 v0.2.4 v0.2.5 v0.2.6 v0.3.0 v0.3.1 v0.3.2 v0.3.3 v0.3.4 v0.3.5 v0.3.6 v0.3.7 v0.3.8 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7 v0.4.8 v0.4.9 v0.4.10 v0.4.11 v0.4.12 v0.5.0 v0.5.1 v0.5.2 v0.5.3 v0.5.4 v0.5.5 v0.5.6 v0.5.7 v0.5.8 v0.5.9 v0.5.10 v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7 v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15 v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21 v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7 v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12 v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7 v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15 v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23 v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28 v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12 v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7 v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15 v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23 v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31 v0.10.32 v0.10.33 v0.10.34 v0.10.35 v0.10.36 v0.10.37 v0.10.38 v0.10.39 v0.10.40 v0.10.41 v0.10.42 v0.10.43 v0.10.44 v0.10.45 v0.10.46 v0.10.47 v0.10.48 v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7 v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14 v0.11.15 v0.11.16 v0.12.0 v0.12.1 v0.12.2 v0.12.3 v0.12.4 v0.12.5 v0.12.6 v0.12.7 v0.12.8 v0.12.9 v0.12.10 v0.12.11 v0.12.12 v0.12.13 v0.12.14 v0.12.15 v0.12.16 v0.12.17 v0.12.18 v4.0.0 v4.1.0 v4.1.1 v4.1.2 v4.2.0 v4.2.1 v4.2.2 v4.2.3 v4.2.4 v4.2.5 v4.2.6 v4.3.0 v4.3.1 v4.3.2 v4.4.0 v4.4.1 v4.4.2 v4.4.3 v4.4.4 v4.4.5 v4.4.6 v4.4.7 v4.5.0 v4.6.0 v4.6.1 v4.6.2 v4.7.0 v4.7.1 v4.7.2 v4.7.3 v4.8.0 v4.8.1 v4.8.2 v4.8.3 v4.8.4 v4.8.5 v4.8.6 v4.8.7 v4.9.0 v4.9.1 v5.0.0 v5.1.0 v5.1.1 v5.2.0 v5.3.0 v5.4.0 v5.4.1 v5.5.0 v5.6.0 v5.7.0 v5.7.1 v5.8.0 v5.9.0 v5.9.1 v5.10.0 v5.10.1 v5.11.0 v5.11.1 v5.12.0 v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2 v6.3.0 v6.3.1 v6.4.0 v6.5.0 v6.6.0 v6.7.0 v6.8.0 v6.8.1 v6.9.0 v6.9.1 v6.9.2 v6.9.3 v6.9.4 v6.9.5 v6.10.0 v6.10.1 v6.10.2 v6.10.3 v6.11.0 v6.11.1 v6.11.2 v6.11.3 v6.11.4 v6.11.5 v6.12.0 v6.12.1 v6.12.2 v6.12.3 v6.13.0 v6.13.1 v6.14.0 v6.14.1 v6.14.2 v6.14.3 v6.14.4 v6.15.0 v6.15.1 v6.16.0 v6.17.0 v6.17.1 v7.0.0 v7.1.0 v7.2.0 v7.2.1 v7.3.0 v7.4.0 v7.5.0 v7.6.0 v7.7.0 v7.7.1 v7.7.2 v7.7.3 v7.7.4 v7.8.0 v7.9.0 v7.10.0 v7.10.1 v8.0.0 v8.1.0 v8.1.1 v8.1.2 v8.1.3 v8.1.4 v8.2.0 v8.2.1 v8.3.0 v8.4.0 v8.5.0 v8.6.0 v8.7.0 v8.8.0 v8.8.1 v8.9.0 v8.9.1 v8.9.2 v8.9.3 v8.9.4 v8.10.0 v8.11.0 v8.11.1 v8.11.2 v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.0 v8.14.1 v8.15.0 v8.15.1 v8.16.0 v8.16.1 v8.16.2 v8.17.0 v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0 v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0 v9.11.1 v9.11.2 v10.0.0 v10.1.0 v10.2.0 v10.2.1 v10.3.0 v10.4.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 v10.14.0 v10.14.1 v10.14.2 v10.15.0 v10.15.1 v10.15.2 v10.15.3 v10.16.0 v10.16.1 v10.16.2 v10.16.3 v10.17.0 v10.18.0 v10.18.1 v10.19.0 v10.20.0 v10.20.1 v10.21.0 v10.22.0 v10.22.1 v10.23.0 v10.23.1 v10.23.2 v10.23.3 v10.24.0 v10.24.1 v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 v11.10.1 v11.11.0 v11.12.0 v11.13.0 v11.14.0 v11.15.0 v12.0.0 v12.1.0 v12.2.0 v12.3.0 v12.3.1 v12.4.0 v12.5.0 v12.6.0 v12.7.0 v12.8.0 v12.8.1 v12.9.0 v12.9.1 v12.10.0 v12.11.0 v12.11.1 v12.12.0 v12.13.0 v12.13.1 v12.14.0 v12.14.1 v12.15.0 v12.16.0 v12.16.1 v12.16.2 v12.16.3 v12.17.0 v12.18.0 v12.18.1 v12.18.2 v12.18.3 v12.18.4 v12.19.0 v12.19.1 v12.20.0 v12.20.1 v12.20.2 v12.21.0 v12.22.0 v12.22.1 v12.22.2 v12.22.3 v12.22.4 v12.22.5 v12.22.6 v12.22.7 v12.22.8 v12.22.9 v12.22.10 v12.22.11 v12.22.12 v13.0.0 v13.0.1 v13.1.0 v13.2.0 v13.3.0 v13.4.0 v13.5.0 v13.6.0 v13.7.0 v13.8.0 v13.9.0 v13.10.0 v13.10.1 v13.11.0 v13.12.0 v13.13.0 v13.14.0 v14.0.0 v14.1.0 v14.2.0 v14.3.0 v14.4.0 v14.5.0 v14.6.0 v14.7.0 v14.8.0 v14.9.0 v14.10.0 v14.10.1 v14.11.0 v14.12.0 v14.13.0 v14.13.1 v14.14.0 v14.15.0 v14.15.1 v14.15.2 v14.15.3 v14.15.4 v14.15.5 v14.16.0 v14.16.1 v14.17.0 v14.17.1 v14.17.2 v14.17.3 v14.17.4 v14.17.5 v14.17.6 v14.18.0 v14.18.1 v14.18.2 v14.18.3 v14.19.0 v14.19.1 v14.19.2 v14.19.3 v14.20.0 v14.20.1 v14.21.0 v14.21.1 v14.21.2 v14.21.3 v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 v15.4.0 v15.5.0 v15.5.1 v15.6.0 v15.7.0 v15.8.0 v15.9.0 v15.10.0 v15.11.0 v15.12.0 v15.13.0 v15.14.0 v16.0.0 v16.1.0 v16.2.0 v16.3.0 v16.4.0 v16.4.1 v16.4.2 v16.5.0 v16.6.0 v16.6.1 v16.6.2 v16.7.0 v16.8.0 v16.9.0 v16.9.1 v16.10.0 v16.11.0 v16.11.1 v16.12.0 v16.13.0 v16.13.1 v16.13.2 v16.14.0 v16.14.1 v16.14.2 v16.15.0 v16.15.1 v16.16.0 v16.17.0 v16.17.1 v16.18.0 v16.18.1 v16.19.0 v16.19.1 v16.20.0 v16.20.1 v16.20.2 v17.0.0 v17.0.1 v17.1.0 v17.2.0 v17.3.0 v17.3.1 v17.4.0 v17.5.0 v17.6.0 v17.7.0 v17.7.1 v17.7.2 v17.8.0 v17.9.0 v17.9.1 v18.0.0 v18.1.0 v18.2.0 v18.3.0 v18.4.0 v18.5.0 v18.6.0 v18.7.0 v18.8.0 v18.9.0 v18.9.1 v18.10.0 v18.11.0 v18.12.0 v18.12.1 v18.13.0 v18.14.0 v18.14.1 v18.14.2 v18.15.0 v18.16.0 v18.16.1 v18.17.0 v18.17.1 v18.18.0 v18.18.1 v18.18.2 v18.19.0 v18.19.1 v18.20.0 v18.20.1 v18.20.2 v18.20.3 v18.20.4 v19.0.0 v19.0.1 v19.1.0 v19.2.0 v19.3.0 v19.4.0 v19.5.0 v19.6.0 v19.6.1 v19.7.0 v19.8.0 v19.8.1 v19.9.0 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 v21.0.0 v21.1.0 v21.2.0 v21.3.0 v21.4.0 v21.5.0 v21.6.0 v21.6.1 v21.6.2 v21.7.0 v21.7.1 v21.7.2 v21.7.3 v22.0.0 v22.1.0 v22.2.0 v22.3.0 v22.4.0 v22.4.1 v22.5.0 v22.5.1 v22.6.0 v22.7.0 io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0 io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2 io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4 io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1 io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0 io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1
io@vX.X.X形式のバージョン
は
2014年にNode.jsの開発に関して意見の相違が生じた結果、io.jsが誕生し
その後、Node.jsとio.jsは再統合され、現在のNode.jsのプロジェクトに吸収された
とのこと
なので最新版を使えば問題なさそう
問題はfirebaseで使うので
どのバージョンをつけば良いかということ
GPTによれば最新のものであればOK
とのこと
【初心者向け】zsh: command not found: npm がでた時の対処法
を参考に
nodebrew install v22.7.0
としたがエラー
Fetching: https://nodejs.org/dist/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz Warning: Failed to open the file Warning: /Users/snowpool/.nodebrew/src/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz Warning: : No such file or directory curl: (23) Failure writing output to destination download failed: https://nodejs.org/dist/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz
GPTで調べたらインストールコマンドが
nodebrew install-binary
となっていたので
これで検索
nodebrewによるNode.jsのインストール手順まとめ
を参考に
安定版をインストールしたいので
nodebrew install-binary stable
を実行
Fetching: https://nodejs.org/dist/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz Warning: Failed to open the file Warning: /Users/snowpool/.nodebrew/src/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz Warning: : No such file or directory 0.0%curl: (23) Failure writing output to destination download failed: https://nodejs.org/dist/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz
となる
原因は
nodebrew setup
が行われていないため
既にパスは通しているけど
念の為
source ~/.zshrc
を実行しておく
再度
nodebrew install-binary stable
を実行すると
Fetching: https://nodejs.org/dist/v22.7.0/node-v22.7.0-darwin-arm64.tar.gz ######################################################################### 100.0% Installed successfully
でインストールできた
ログから
v22.7.0
がインストールされているのがわかるので
nodebrew use v22.7.0
の後に
node -v
で
v22.7.0
と表示されればOK
npm -v 10.8.2
というように
Npmも一緒にインストールされる
とりあえずこれで準備できたので
npm install -g firebase-tools
を実行すると
added 630 packages in 33s 69 packages are looking for funding run `npm fund` for details
となる
firebase --version 13.15.4
が前回インストールしたときのバージョンだった
irebase --version 13.16.0
とバージョンが表示されていればOK
firebase login
を実行すると
i Firebase optionally collects CLI and Emulator Suite usage and error reporting information to help improve our products. Data is collected in accordance with Google's privacy policy (https://policies.google.com/privacy) and is not used to identify you. ? Allow Firebase to collect CLI and Emulator Suite usage and error reporting information? (Y/n) i Firebase は、製品の改善に役立てるために、CLI およびエミュレータ スイートの使用状況およびエラー報告情報をオプションで収集します。データは Google のプライバシー ポリシー (https://policies.google.com/privacy) に従って収集され、お客様を特定するために使用されることはありません。 ? Firebase が CLI とエミュレータ スイートの使用状況とエラー レポートを収集できるようにする 情報? (はい/いいえ)
となるので
Y
これでブラウザが立ち上がり
認証画面になるのでそのまま進めていく
i Firebase optionally collects CLI and Emulator Suite usage and error reporting information to help improve our products. Data is collected in accordance with Google's privacy policy (https://policies.google.com/privacy) and is not used to identify you. ? Allow Firebase to collect CLI and Emulator Suite usage and error reporting information? Yes i To change your data collection preference at any time, run `firebase logout` and log in again. Visit this URL on this device to log in:ct_uri=http%3A%2F%2Flocalhost%3A9005 Waiting for authentication... ✔ Success! Logged in as snowpoollovely@gmail.com
となり認証が成功
次にプロジェクトの初期化
プロジェクトディレクトリは
/Users/snowpool/aw10s/linebot
ここで
firebase init
を実行
######## #### ######## ######## ######## ### ###### ######## ## ## ## ## ## ## ## ## ## ## ## ###### ## ######## ###### ######## ######### ###### ###### ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ######## ## ## ###### ######## You're about to initialize a Firebase project in this directory: /Users/snowpool/aw10s/linebot ? Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter to confirm your choices. (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed) ❯◯ Realtime Database: Configure a security rules file for Realtime Database and (optionally) provision default instance ◯ Firestore: Configure security rules and indexes files for Firestore ◯ Functions: Configure a Cloud Functions directory and its files ◯ Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys ◯ Storage: Configure a security rules file for Cloud Storage (Move up and down to reveal more choices)
となるので
chatGPTで調べる
このプロンプトは、Firebaseプロジェクトを初期化する際に、どのFirebase機能を設定するかを選択する画面です。それぞれの選択肢がどのような役割を果たすのかについて説明し、今回のプロジェクトに適した選択について提案します。
### 選択肢の説明
1. **Realtime Database**:
– セキュリティルールと、オプションでデフォルトのインスタンスを設定します。リアルタイムでデータを読み書きできるNoSQLデータベースです。
2. **Firestore**:
– セキュリティルールとインデックスファイルを設定します。リアルタイムの更新やクエリが可能なドキュメントベースのNoSQLデータベースです。
3. **Functions**:
– Cloud Functionsのディレクトリと必要なファイルを設定します。サーバーレスなバックエンドロジックを実装するための選択肢です。Webhookサーバーを構築する際には、必須となります。
4. **Hosting**:
– Firebase Hosting用のファイルを設定し、オプションでGitHub Actionsを使用してデプロイを自動化する設定を行います。静的ウェブサイトやSPAをホスティングする場合に使用します。
5. **Storage**:
– Cloud Storage用のセキュリティルールファイルを設定します。画像やファイルのアップロードとストレージ管理に使用します。
### 今回のプロジェクトでの選択
あなたが取り組んでいるのは、LINE Botで音声の読み上げと入力、そしてOllamaでの文章修正を行い、FirebaseでWebhookサーバーとして動作させることです。したがって、以下の選択肢が関連性があります:
– **Functions**: これを選択してください。これは、Webhookサーバーを構築するためにCloud Functionsを使用するために必要です。Cloud FunctionsでLINE Botの処理や、Ollamaとの連携を行います。
### 選択の方法
1. **Functions**を選択するには、`Space`キーを押してチェックマークを付けます。
2. 他の選択肢は必要なければそのままにしておきます。
3. `Enter`キーを押して選択を確定します。
### 他のオプションについて
– **Firestore**: もし、修正されたテキストやログを保存するためにデータベースを使用したい場合は、Firestoreを選択するのも有効です。ただし、基本的なWebhookの処理のみであれば、必須ではありません。
– **Hosting**: 今回はWebコンテンツのホスティングが目的ではないため、選択する必要はありません。
– **Storage**: 音声ファイルのアップロードや保存が必要でない限り、これも選択する必要はありません。
このガイドラインに従って、Firebaseプロジェクトを初期化し、必要な機能を設定してください。`Functions`を選択することで、Webhookサーバーを構築する準備が整います。
とのことなので
❯◉ Functions: Configure a Cloud Functions directory and its files
にのみ spaceキーでチェックをいれEnter
? Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter to confirm your choices. Functions: Configure a Cloud Functions directory and its files === Project Setup First, let's associate this project directory with a Firebase project. You can create multiple project aliases by running firebase use --add, but for now we'll just set up a default project. ? Please select an option: ❯ Use an existing project Create a new project Add Firebase to an existing Google Cloud Platform project Don't set up a default project
となる
意味は
このプロンプトでは、Firebaseプロジェクトをディレクトリに関連付ける方法を選択するオプションを提供しています。各オプションの意味を以下に説明し、適切な選択についても提案します。
### オプションの説明
1. **Use an existing project**:
– 既にFirebaseコンソールで作成したプロジェクトがある場合、このオプションを選択します。これにより、現在のディレクトリをその既存のFirebaseプロジェクトに関連付けることができます。
– これが最も一般的で推奨されるオプションです。
2. **Create a new project**:
– 新しいFirebaseプロジェクトを作成する場合にこのオプションを選択します。Firebaseコンソールに新しいプロジェクトが作成され、そのプロジェクトが現在のディレクトリに関連付けられます。
– まだFirebaseプロジェクトを作成していない場合や、新規のプロジェクトが必要な場合に有効です。
3. **Add Firebase to an existing Google Cloud Platform project**:
– 既存のGoogle Cloud Platform(GCP)プロジェクトがあり、それにFirebaseの機能を追加したい場合にこのオプションを選択します。
– GCPプロジェクトのリソースを有効に活用したい場合に便利です。
4. **Don’t set up a default project**:
– 既存のFirebaseプロジェクトや新しいプロジェクトを今すぐ設定したくない場合、このオプションを選択します。後でプロジェクトを設定することができますが、このディレクトリに対してFirebase機能をすぐに使用することはできません。
– 特定のプロジェクトにすぐに関連付けたくない場合にのみ選択します。
### おすすめの選択肢
– **Use an existing project**: 既にFirebaseプロジェクトがある場合、または特定のプロジェクトをこのディレクトリに関連付けたい場合はこのオプションを選びます。
– **Create a new project**: 新しいプロジェクトを作成したい場合、またはまだプロジェクトがない場合はこちらを選びます。
### 今回の状況に応じた選択
もし既にLINE BotやOllamaで使うために設定済みのFirebaseプロジェクトがある場合、**Use an existing project**を選択して、そのプロジェクトを選択するのが良いでしょう。まだプロジェクトを作成していない場合、または新規のプロジェクトが必要であれば、**Create a new project**を選択して新しいプロジェクトを作成します。
選択肢を決定したら、`Enter`キーを押して選択を確定してください。
既に firebase で
voicelinebot
というプロジェクトを作っているのでこれを使う
既に「voicelinebot」というFirebaseプロジェクトを作成しているので、そのプロジェクトを使用するのが最適です。そのために、以下の手順を実行します:
### 手順
1. **「Use an existing project」を選択**:
– `Use an existing project`オプションを選び、`Enter`キーを押します。
2. **「voicelinebot」を選択**:
– Firebase CLIがプロジェクトのリストを表示します。その中から「voicelinebot」を見つけて選択します。
– 矢印キーを使って「voicelinebot」を選択し、`Enter`キーを押します。
これにより、現在のディレクトリが「voicelinebot」プロジェクトに関連付けられます。これからFirebase Functionsのコードを実装し、`firebase deploy`コマンドを使用してデプロイすると、「voicelinebot」プロジェクト内で動作するようになります。
### 確認と次のステップ
– プロジェクトが正しく関連付けられると、Firebase CLIはディレクトリにプロジェクト関連の設定ファイル(`firebase.json`や`.firebaserc`)を生成します。
– 必要なCloud Functionsの実装を行った後、次のコマンドでデプロイできます:
“`bash
firebase deploy –only functions
“`
– デプロイが成功すると、Firebaseコンソールで「voicelinebot」プロジェクトのCloud Functionsセクションから関数の状態やログを確認できます。
これで、「voicelinebot」プロジェクトを使用してLINE Botの機能を実装するための準備が整いました。今後の開発作業に進んでください。
❯ Use an existing project
でEnter
? Select a default Firebase project for this directory: myfirebaseprojectapp-273fc (MyFirebaseProjectApp) myportfolioproject-5e36a (MyPortfolioProject ) mysecondsite-9c25e (MysecondSite) raspberrypi-ea1b6 (raspberryPi) raspberypi-293821 (raspberypi) ❯ voicelinebot (voicelinebot)
プロジェクトの一覧表示となるので
voicelinebot (voicelinebot)
を選択しEnter
? Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter to confirm your choices. Functions: Configure a Cloud Functions directory and its files === Project Setup First, let's associate this project directory with a Firebase project. You can create multiple project aliases by running firebase use --add, but for now we'll just set up a default project. ? Please select an option: Use an existing project ? Select a default Firebase project for this directory: voicelinebot (voicelinebot) i Using project voicelinebot (voicelinebot) === Functions Setup Let's create a new codebase for your functions. A directory corresponding to the codebase will be created in your project with sample code pre-configured. See https://firebase.google.com/docs/functions/organize-functions for more information on organizing your functions using codebases. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? JavaScript TypeScript ❯ Python
となるので
chatGPTで調べてみた
Firebase FunctionsでPythonを使いたい場合、Firebase CLIの標準オプションでは直接サポートされていません(2024年現在、Firebase Functionsは主にJavaScriptとTypeScriptでの実装をサポートしています)。そのため、Firebase Functionsの選択肢にPythonが表示されるのは異例であり、通常はJavaScriptまたはTypeScriptを選択します。
### Pythonサポートの状況
– Firebase Functionsは、公式にはJavaScript/TypeScriptの実装をサポートしており、Pythonでの実装は公式サポート外です。
– Pythonでクラウド関数を実行する場合、通常はGoogle Cloud Functionsを直接使用し、Firebaseの認証やデータベースと統合します。
### 対応方法
#### 1. JavaScriptまたはTypeScriptで実装
公式のサポートに従い、Firebase Functionsの実装にはJavaScriptまたはTypeScriptを選択します。これにより、公式のドキュメントやサポートを最大限に活用できます。
– JavaScriptで実装する場合:
– シンプルに開始するにはJavaScriptを選びます。
– TypeScriptで実装する場合:
– 型の安全性を重視する場合、TypeScriptを選択します。
#### 2. Pythonを使用する場合の代替方法
Pythonを使用したい場合、以下の方法でFirebaseと連携することができます。
1. **Google Cloud FunctionsでPythonを使用**:
– Google Cloud FunctionsはPythonでの関数実装をサポートしています。Firebaseの機能(Firestore、Authenticationなど)を使用する場合、Google Cloud FunctionsのエンドポイントとしてPythonコードを実装し、それをFirebaseのイベント(データの変更や認証イベントなど)に関連付けます。
2. **Flaskなどのフレームワークを使用してWebhookを構築**:
– PythonでWebhookを構築し、Firebaseのデータやイベントを処理するWeb APIを作成することも可能です。これをFirebase HostingやCloud Runでホスティングし、Firebase Functionsの代わりに使用します。
### 次のステップ
1. **JavaScript/TypeScriptで実装する場合**:
– Pythonのオプションが表示された場合でも、`JavaScript`または`TypeScript`を選択してプロジェクトを設定します。
– Firebase Functions用に作成されたサンプルコードを基に開発を進めます。
2. **Pythonで実装する場合**:
– Firebase Functionsのプロジェクト設定はスキップし、代わりにGoogle Cloud Functionsや他のPython互換の環境での開発を検討します。
Firebase Functionsでの公式なサポートが必要な場合、現在のところJavaScript/TypeScriptを選ぶのが最も確実な方法です。これを踏まえて、プロジェクトの設定を進めてください。
と出るが
Cloud Functions for FirebaseをPythonで使ってみた
Firebase Functionsで新たにサポートされたPythonをSetupし、更にTypeScriptと共存させる
などの情報もあるので気にせずに
pythonnを選択する
=== Project Setup First, let's associate this project directory with a Firebase project. You can create multiple project aliases by running firebase use --add, but for now we'll just set up a default project. ? Please select an option: Use an existing project ? Select a default Firebase project for this directory: voicelinebot (voicelinebot) i Using project voicelinebot (voicelinebot) === Functions Setup Let's create a new codebase for your functions. A directory corresponding to the codebase will be created in your project with sample code pre-configured. See https://firebase.google.com/docs/functions/organize-functions for more information on organizing your functions using codebases. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? Python ✔ Wrote functions/requirements.txt ✔ Wrote functions/.gitignore ✔ Wrote functions/main.py ? Do you want to install dependencies now? (Y/n)
となる
意味は
`Do you want to install dependencies now? (Y/n)` というプロンプトが表示された場合、`Y` を選択することで、Python環境に必要な依存関係が自動的にインストールされます。これにより、作成された`requirements.txt`にリストされているパッケージがインストールされ、PythonのCloud Functionsが正しく動作するようになります。
### 選択の推奨
– **`Y`を選択**:
– `Y`を選択することで、依存関係のインストールが自動で行われ、セットアップがスムーズに進みます。特に、すぐに開発を開始したい場合や、依存関係の管理に慣れていない場合に便利です。
### 次のステップ
1. **依存関係のインストール**:
– `Y`を選択すると、Firebase CLIがPythonのパッケージ管理システム(通常は`pip`)を使用して、`requirements.txt`に記載されたパッケージをインストールします。
2. **関数の実装**:
– `functions/main.py`というファイルが作成されているので、ここに必要な関数のロジックを実装します。このファイルに、LINE BotやOllamaとの連携機能を追加します。
3. **関数のデプロイ**:
– 必要な関数を実装した後、次のコマンドでFirebaseにデプロイします。
“`bash
firebase deploy –only functions
“`
### まとめ
– `Y`を選択して依存関係をインストールし、開発環境を整えましょう。
– `main.py`で関数の実装を行い、テストが終わったらFirebaseにデプロイして、LINE Botなどとの連携を実現します。
これで、Pythonを使用してFirebase Functionsをセットアップし、プロジェクトの開発を進める準備が整いました。
となるので
Y
でEnter
Requirement already satisfied: pip in ./venv/lib/python3.12/site-packages (24.0) Collecting pip Downloading pip-24.2-py3-none-any.whl.metadata (3.6 kB) Downloading pip-24.2-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 8.7 MB/s eta 0:00:00 Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 24.0 Uninstalling pip-24.0: Successfully uninstalled pip-24.0 Successfully installed pip-24.2 Collecting firebase_functions~=0.1.0 (from -r requirements.txt (line 1)) Downloading firebase_functions-0.1.2-py3-none-any.whl.metadata (1.5 kB) Collecting flask>=2.1.2 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading flask-3.0.3-py3-none-any.whl.metadata (3.2 kB) Collecting functions-framework>=3.0.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading functions_framework-3.8.1-py3-none-any.whl.metadata (16 kB) Collecting firebase-admin>=6.0.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading firebase_admin-6.5.0-py3-none-any.whl.metadata (1.5 kB) Collecting pyyaml>=6.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.1 kB) Collecting typing-extensions>=4.4.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB) Collecting cloudevents==1.9.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading cloudevents-1.9.0-py3-none-any.whl.metadata (6.5 kB) Collecting flask-cors>=3.0.10 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading Flask_Cors-4.0.1-py2.py3-none-any.whl.metadata (5.5 kB) Collecting pyjwt>=2.5.0 (from pyjwt[crypto]>=2.5.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading PyJWT-2.9.0-py3-none-any.whl.metadata (3.0 kB) Collecting google-events>=0.5.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_events-0.12.0-py3-none-any.whl.metadata (1.9 kB) Collecting google-cloud-firestore>=2.11.0 (from firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_cloud_firestore-2.18.0-py2.py3-none-any.whl.metadata (5.7 kB) Collecting deprecation<3.0,>=2.0 (from cloudevents==1.9.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading deprecation-2.1.0-py2.py3-none-any.whl.metadata (4.6 kB) Collecting cachecontrol>=0.12.6 (from firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading cachecontrol-0.14.0-py3-none-any.whl.metadata (3.1 kB) Collecting google-api-python-client>=1.7.8 (from firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_api_python_client-2.143.0-py2.py3-none-any.whl.metadata (6.7 kB) Collecting google-cloud-storage>=1.37.1 (from firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_cloud_storage-2.18.2-py2.py3-none-any.whl.metadata (9.1 kB) Collecting google-api-core<3.0.0dev,>=1.22.1 (from google-api-core[grpc]<3.0.0dev,>=1.22.1; platform_python_implementation != "PyPy"->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_api_core-2.19.2-py3-none-any.whl.metadata (2.7 kB) Collecting Werkzeug>=3.0.0 (from flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading werkzeug-3.0.4-py3-none-any.whl.metadata (3.7 kB) Collecting Jinja2>=3.1.2 (from flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB) Collecting itsdangerous>=2.1.2 (from flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB) Collecting click>=8.1.3 (from flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting blinker>=1.6.2 (from flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading blinker-1.8.2-py3-none-any.whl.metadata (1.6 kB) Collecting watchdog>=1.0.0 (from functions-framework>=3.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading watchdog-5.0.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (40 kB) Collecting gunicorn>=22.0.0 (from functions-framework>=3.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading gunicorn-23.0.0-py3-none-any.whl.metadata (4.4 kB) Collecting google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1 (from google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_auth-2.34.0-py2.py3-none-any.whl.metadata (4.7 kB) Collecting google-cloud-core<3.0.0dev,>=1.4.1 (from google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_cloud_core-2.4.1-py2.py3-none-any.whl.metadata (2.7 kB) Collecting proto-plus<2.0.0dev,>=1.22.0 (from google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Using cached proto_plus-1.24.0-py3-none-any.whl.metadata (2.2 kB) Collecting protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2 (from google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading protobuf-5.27.4-cp38-abi3-macosx_10_9_universal2.whl.metadata (592 bytes) Collecting cryptography>=3.4.0 (from pyjwt[crypto]>=2.5.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl.metadata (5.4 kB) Collecting requests>=2.16.0 (from cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting msgpack<2.0.0,>=0.5.2 (from cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl.metadata (9.1 kB) Collecting cffi>=1.12 (from cryptography>=3.4.0->pyjwt[crypto]>=2.5.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (1.5 kB) Collecting packaging (from deprecation<3.0,>=2.0->cloudevents==1.9.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading packaging-24.1-py3-none-any.whl.metadata (3.2 kB) Collecting googleapis-common-protos<2.0.dev0,>=1.56.2 (from google-api-core<3.0.0dev,>=1.22.1->google-api-core[grpc]<3.0.0dev,>=1.22.1; platform_python_implementation != "PyPy"->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading googleapis_common_protos-1.65.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting grpcio<2.0dev,>=1.33.2 (from google-api-core[grpc]<3.0.0dev,>=1.22.1; platform_python_implementation != "PyPy"->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading grpcio-1.66.0-cp312-cp312-macosx_10_9_universal2.whl.metadata (3.9 kB) Collecting grpcio-status<2.0.dev0,>=1.33.2 (from google-api-core[grpc]<3.0.0dev,>=1.22.1; platform_python_implementation != "PyPy"->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading grpcio_status-1.66.0-py3-none-any.whl.metadata (1.1 kB) Collecting httplib2<1.dev0,>=0.19.0 (from google-api-python-client>=1.7.8->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading httplib2-0.22.0-py3-none-any.whl.metadata (2.6 kB) Collecting google-auth-httplib2<1.0.0,>=0.2.0 (from google-api-python-client>=1.7.8->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_auth_httplib2-0.2.0-py2.py3-none-any.whl.metadata (2.2 kB) Collecting uritemplate<5,>=3.0.1 (from google-api-python-client>=1.7.8->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading uritemplate-4.1.1-py2.py3-none-any.whl.metadata (2.9 kB) Collecting cachetools<6.0,>=2.0.0 (from google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1->google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading cachetools-5.5.0-py3-none-any.whl.metadata (5.3 kB) Collecting pyasn1-modules>=0.2.1 (from google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1->google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading pyasn1_modules-0.4.0-py3-none-any.whl.metadata (3.4 kB) Collecting rsa<5,>=3.1.4 (from google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1->google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading rsa-4.9-py3-none-any.whl.metadata (4.2 kB) Collecting google-resumable-media>=2.7.2 (from google-cloud-storage>=1.37.1->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google_resumable_media-2.7.2-py2.py3-none-any.whl.metadata (2.2 kB) Collecting google-crc32c<2.0dev,>=1.0 (from google-cloud-storage>=1.37.1->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading google-crc32c-1.5.0.tar.gz (12 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting MarkupSafe>=2.0 (from Jinja2>=3.1.2->flask>=2.1.2->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl.metadata (3.0 kB) Collecting pycparser (from cffi>=1.12->cryptography>=3.4.0->pyjwt[crypto]>=2.5.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes) Collecting pyparsing!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,<4,>=2.4.2 (from httplib2<1.dev0,>=0.19.0->google-api-python-client>=1.7.8->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading pyparsing-3.1.4-py3-none-any.whl.metadata (5.1 kB) Collecting pyasn1<0.7.0,>=0.4.6 (from pyasn1-modules>=0.2.1->google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1->google-cloud-firestore>=2.11.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading pyasn1-0.6.0-py2.py3-none-any.whl.metadata (8.3 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.16.0->cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl.metadata (33 kB) Collecting idna<4,>=2.5 (from requests>=2.16.0->cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading idna-3.8-py3-none-any.whl.metadata (9.9 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.16.0->cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB) Collecting certifi>=2017.4.17 (from requests>=2.16.0->cachecontrol>=0.12.6->firebase-admin>=6.0.0->firebase_functions~=0.1.0->-r requirements.txt (line 1)) Downloading certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB) Downloading firebase_functions-0.1.2-py3-none-any.whl (76 kB) Downloading cloudevents-1.9.0-py3-none-any.whl (47 kB) Downloading firebase_admin-6.5.0-py3-none-any.whl (126 kB) Downloading flask-3.0.3-py3-none-any.whl (101 kB) Downloading Flask_Cors-4.0.1-py2.py3-none-any.whl (14 kB) Downloading functions_framework-3.8.1-py3-none-any.whl (35 kB) Downloading google_cloud_firestore-2.18.0-py2.py3-none-any.whl (326 kB) Downloading google_events-0.12.0-py3-none-any.whl (504 kB) Downloading PyJWT-2.9.0-py3-none-any.whl (22 kB) Downloading PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl (173 kB) Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB) Downloading blinker-1.8.2-py3-none-any.whl (9.5 kB) Downloading cachecontrol-0.14.0-py3-none-any.whl (22 kB) Using cached click-8.1.7-py3-none-any.whl (97 kB) Downloading cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl (6.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 6.7 MB/s eta 0:00:00 Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB) Downloading google_api_core-2.19.2-py3-none-any.whl (139 kB) Downloading google_api_python_client-2.143.0-py2.py3-none-any.whl (12.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.2/12.2 MB 9.0 MB/s eta 0:00:00 Downloading google_auth-2.34.0-py2.py3-none-any.whl (200 kB) Downloading google_cloud_core-2.4.1-py2.py3-none-any.whl (29 kB) Downloading google_cloud_storage-2.18.2-py2.py3-none-any.whl (130 kB) Downloading gunicorn-23.0.0-py3-none-any.whl (85 kB) Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB) Downloading jinja2-3.1.4-py3-none-any.whl (133 kB) Using cached proto_plus-1.24.0-py3-none-any.whl (50 kB) Downloading protobuf-5.27.4-cp38-abi3-macosx_10_9_universal2.whl (412 kB) Downloading watchdog-5.0.0-cp312-cp312-macosx_11_0_arm64.whl (88 kB) Downloading werkzeug-3.0.4-py3-none-any.whl (227 kB) Downloading cachetools-5.5.0-py3-none-any.whl (9.5 kB) Downloading cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl (178 kB) Downloading google_auth_httplib2-0.2.0-py2.py3-none-any.whl (9.3 kB) Downloading google_resumable_media-2.7.2-py2.py3-none-any.whl (81 kB) Downloading googleapis_common_protos-1.65.0-py2.py3-none-any.whl (220 kB) Downloading grpcio-1.66.0-cp312-cp312-macosx_10_9_universal2.whl (10.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.6/10.6 MB 9.9 MB/s eta 0:00:00 Downloading grpcio_status-1.66.0-py3-none-any.whl (14 kB) Using cached httplib2-0.22.0-py3-none-any.whl (96 kB) Downloading MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl (18 kB) Downloading msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl (85 kB) Downloading pyasn1_modules-0.4.0-py3-none-any.whl (181 kB) Using cached requests-2.32.3-py3-none-any.whl (64 kB) Using cached rsa-4.9-py3-none-any.whl (34 kB) Using cached uritemplate-4.1.1-py2.py3-none-any.whl (10 kB) Downloading packaging-24.1-py3-none-any.whl (53 kB) Downloading certifi-2024.7.4-py3-none-any.whl (162 kB) Downloading charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl (119 kB) Downloading idna-3.8-py3-none-any.whl (66 kB) Downloading pyasn1-0.6.0-py2.py3-none-any.whl (85 kB) Downloading pyparsing-3.1.4-py3-none-any.whl (104 kB) Downloading urllib3-2.2.2-py3-none-any.whl (121 kB) Downloading pycparser-2.22-py3-none-any.whl (117 kB) Building wheels for collected packages: google-crc32c Building wheel for google-crc32c (pyproject.toml) ... done Created wheel for google-crc32c: filename=google_crc32c-1.5.0-py3-none-any.whl size=13027 sha256=139d975c4c5d667b2152b772b4daab531e73106a48b599ceaf2b867d8514ef6e Stored in directory: /Users/snowpool/Library/Caches/pip/wheels/40/b9/2e/089df51c5e6f7cda282c650457a1d9a7a55bf6386d8de8bf3d Successfully built google-crc32c Installing collected packages: watchdog, urllib3, uritemplate, typing-extensions, pyyaml, pyparsing, pyjwt, pycparser, pyasn1, protobuf, packaging, msgpack, MarkupSafe, itsdangerous, idna, grpcio, google-crc32c, click, charset-normalizer, certifi, cachetools, blinker, Werkzeug, rsa, requests, pyasn1-modules, proto-plus, Jinja2, httplib2, gunicorn, googleapis-common-protos, google-resumable-media, deprecation, cffi, grpcio-status, google-events, google-auth, flask, cryptography, cloudevents, cachecontrol, google-auth-httplib2, google-api-core, functions-framework, flask-cors, google-cloud-core, google-api-python-client, google-cloud-storage, google-cloud-firestore, firebase-admin, firebase_functions Successfully installed Jinja2-3.1.4 MarkupSafe-2.1.5 Werkzeug-3.0.4 blinker-1.8.2 cachecontrol-0.14.0 cachetools-5.5.0 certifi-2024.7.4 cffi-1.17.0 charset-normalizer-3.3.2 click-8.1.7 cloudevents-1.9.0 cryptography-43.0.0 deprecation-2.1.0 firebase-admin-6.5.0 firebase_functions-0.1.2 flask-3.0.3 flask-cors-4.0.1 functions-framework-3.8.1 google-api-core-2.19.2 google-api-python-client-2.143.0 google-auth-2.34.0 google-auth-httplib2-0.2.0 google-cloud-core-2.4.1 google-cloud-firestore-2.18.0 google-cloud-storage-2.18.2 google-crc32c-1.5.0 google-events-0.12.0 google-resumable-media-2.7.2 googleapis-common-protos-1.65.0 grpcio-1.66.0 grpcio-status-1.66.0 gunicorn-23.0.0 httplib2-0.22.0 idna-3.8 itsdangerous-2.2.0 msgpack-1.0.8 packaging-24.1 proto-plus-1.24.0 protobuf-5.27.4 pyasn1-0.6.0 pyasn1-modules-0.4.0 pycparser-2.22 pyjwt-2.9.0 pyparsing-3.1.4 pyyaml-6.0.2 requests-2.32.3 rsa-4.9 typing-extensions-4.12.2 uritemplate-4.1.1 urllib3-2.2.2 watchdog-5.0.0 i Writing configuration info to firebase.json... i Writing project information to .firebaserc... i Writing gitignore file to .gitignore... ✔ Firebase initialization complete!
となって必要なパッケージがインストールされる
ls
で中身を確認すると
firebase.json functions
が作成されているのがわかる
とりあえずここまでできたので
次は faster-whisper をマイクからできるようにする