くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

CloudFunction

TypeSpec(OpenAPI)でTypeScriptとDartのモデルを共通化する

Firestoreを使ってアプリとサーバを開発していて、 FlutterとCloud FunctionsやNitro Serverでモデルを共通化したいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) TypeSpecでOpenAPIの定義を書いて、 それぞれの言語で生成するのがいいかもしれない。 …

pnpm workspaceでCloud Functions for Firebaseを扱う

pnpm workspaceでのモノレポ化を進めているけど、 Cloud Functions for Firebaseがうまくデプロイできなかったので、 いろいろ調べてみたときの備忘録(*´ω`*) package.jsonに"workspace:^"があるとダメっぽい。 ディレクトリ構成 ディレクトリ構成はこんな…

unjs/nitroをCloud Functions for Firebase v2にデプロイする

unjs/nitroをCloud Functions for Firebase(第2世代)してみたときの備忘録(*´ω`*) Cloud Functions(2nd gen)を試してみたかったこともあるけど、 すんなりデプロイできたので、Cloud Runをつかいたいなら、これでもいいかもしれない。 Cloud Functionsの1…

セキュリティを無効化したChromeをMacOSで立ち上げる(CORS問題の回避)

Nuxt3+Firebase Local Emulator Suiteで開発してると、 Firebase FunctionsのCallable関数でCORSエラーが。。 (Nuxt2のころだと問題なかった気がするけど、) いろいろ試してみたけど、うまく行かなかったので、 開発中はセキュリティを無効化したChromeで動…

Cloud Functions for FirebaseとContainer RegistryとCloud Storage

Cloud Functions for FirebaseとContainer RegistryとCloud Storage ストレージの使用量がやたら多いので色々調べてみたときの備忘録。 Container Registryをきれいにしたらかなり下がった(*´ω`*) 各バケットの用途 見てみると、色んなバケットが利用されて…

Firestoreの読み込み回数をCloud Loggingから計測する

Firestoreの読み込み回数が予想よりも多かったので、 どこでそんなに呼ばれてるのかな?といろいろ調べてみたときの備忘録。 呼び出し箇所は、以下の3種類 Webブラウザのクライアントライブラリ サーバのFirebase Admin SDK Cloud Functions内のAdmin SDK Fi…

Cloud Buildの結果をCloud FunctionでSlackに通知する

最近、Cloud RunのデプロイをCloud Buildでやっているけど、 ビルドの完了とか失敗をSlackで通知したいなと思って、いろいろ調べたときの備忘録。 ソースコードは、GitHubで公開してます。 ・https://github.com/memory-lovers/cloudbuild-slack Cloud Build…

Cloud Functions for Firebase + jest + TypeScript

Cloud Functions for Firebase + TypeScriptでテストを書くときの初期設定の備忘録。 ディレクトリ構成 . ├── __tests__ ... テストのコード ├── src ... ソースのコード ├── lib ... コンパイルしたコードの出力先 ├── jest.config.js ├── package-lock.jso…

Firebase Functionsで環境変数を使ってみる(functions:config)

FirebaseのCloud Functionsで環境変数を利用するときの備忘録。 functions:configはデプロイ時に反映されるので注意が必要。 Firebase Local Emulator Suiteを使う場合は、.runtimeconfig.jsonというファイルを用意する。 環境変数を設定 firebase-toolsを使…

Firebase Authでカスタムトークン認証を試してみる

GoogleアカウントやTwitterなど以外でもFirebase Authを使いたいなと思い、 カスタムトークン認証を試してみるを試してみたときの備忘録 認証の流れ 全体の流れはこんな感じ。 外部の認証でUIDを取得する サーバ側: firebase-adminのcreateCustomToken()でカ…

Cloud FunctionとSVGでOGP画像生成を試行錯誤したまとめ

Nuxt+Firebaseで開発してるサービスのOGP画像を改善しようと、 いろいろ試してみたときの備忘録。 OGP画像の生成はクライアント側とサーバ側かがあるが、 Firestoreの変更に合わせて生成したいので、 Cloud Function上で利用できる方法を考えてた。 結果的に…

Cloud Functionでサブコレクションまで再帰的に削除する(firebase-tools)

Firebaseの公式ドキュメントを見ていたら、こんな記事を見つけた。 試してみたので、そのときの備忘録。 コレクションとサブコレクションを削除する | Firebase Functionのソースはこんな感じ // index.ts import * as functions from "firebase-functions";…

Cloud Functionsの高速化をTypeScriptで試してみた

以下の記事を読んで、実行される関数ごとにファイルを分けて、 呼び出されたときに関数名から必要なファイルだけを読み込むのがいいらしい。 JavaScriptの記事だったので、TypeScriptで試してみた。 ディレクトリ構成 ディレクトリ構成はこんな感じ。 fireba…

キャッシュしたくないときは、Cache-Controlに"private, no-store, no-cache, must-revalidate"とかをつけみる

積読ハウマッチのOGP画像、Cloud FunctionsでSEO用のHTMLを返しているけど、 Twitterでシェアすると、更新されないことが... なんか、キャッシュされてるっぽい。。 Cache-Controlを設定すると良いっぽいので、設定してみた。 Cache-Control: private, no-st…

Nuxt(SPA)+Firebaseでsitemapを生成してみる

積読ハウマッチをNuxt.jsのSPAで作ってみたけど、 静的ページじゃないので、NuxtのSitemap Moduleだと微妙... なので、CloudFunction for Firebaseを使って、 サイトマップを自動生成するようにしてみたときの備忘録。 sitemap.xmlのサンプル sitemapの形式…

Cloud Functions + ImageMagickでOPG画像の動的生成してCloud Storageにアップロードする

OGP画像を生成したいな〜と思い、ImageMagickが使えるようなので、いろいろ調べたときの備忘録。 ImageMagickとは 画像を操作したり表示するためのソフトウェアスイート。 コマンドラインでも使えて、バッチ処理とかで一括処理するときに使ったりするやつ。 …