くらげになりたい。

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

Firebase

Firebase AuthのidTokenをブラウザを使わずに取得する

Firebase Authに認証は全部任せて、APIサーバを立てたいなと、 いろいろ調べてみたときの備忘録(*´ω`*) Firebase AuthのidTokenをAPIサーバのAccess Tokenを扱い、 サーバー側でidTokenの検証をして、UIDを取得する サーバの認証処理 サーバ側の処理はこん…

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…

firebase initのSet up GitHub Action deploysを試してみる&Hosting以外でもデプロイできるようにする

Firebase CLIのfirebase initにある、 「Set up GitHub Action deploys」をちょっと試してみたときの備忘録(*´ω`*) 実行すると サービスアカウントの作成 github-action-<project-no>@<project-id>.iam.gserviceaccount.com GitHub ActionsのSecretsの作成 FIREBASE_SERVICE_ACCOUNT_<PROJECT_ID></project_id></project-id></project-no>…

FirebaseAuthのxxxChanges()の違いと注意点

Firebase Authで現在の認証状態を継続的に取得する方法がいくつかあるけど、 それぞれの違いを整理してみたときの備忘録(*´ω`*) Admin SDKやFirebaseコンソールを使うと反映されないは罠。。 現在の認証状態を確認する | FlutterでFirebase Authentication…

FlutterにFirebaseを導入してみる(FlutterFire CLI+Flavor)

ひさびさにFlutterのセットアップをしてたら、 FlutterFire CLIを使った形になってて、かなりハマったので、 いろいろ調べたときの備忘録(*´ω`*) Flutter アプリに Firebase を追加する invertase/flutterfire_cli: A CLI to help with using FlutterFire i…

Firebase Emulatorの接続方法(admin/client)

FirebaseのEmulator Suite、 便利だけどいつもエミュレータへの接続方法を忘れるので、 簡単にまとめてみたときの備忘録(*´ω`*) Emulatorの起動方法 起動方法はこんな感じ。 # エミュレータの起動(全機能) $ firebase emulators:start --project=your-proje…

FirebaseAuthの認証情報はiOSではアンインストールしても残ってしまう

表題の通り、iOSでFirebase Authを使っていると、 アンインストールしてもログイン状態のままになってしまった。。 [FirebaseAuth] Still logged in after app uninstallation · Issue #4661 · firebase/flutterfire docs(firebase-auth,apple): uninstalla…

GitHub Actions+OIDCでFirebase Hostingにデプロイする(Node.js)

前回の続き。 www.memory-lovers.blog OIDCでGitHub Actions内でgcloudコマンドが使えるようになったので、 firebase CLI(firebase-tools)もできるようにしたいなと調べたときの備忘録(*´ω`*) firebase-toolsとgoogle-github-actions/authのドキュメントを…

iPhone iOS16以上でFirebase AuthのsignInWithRedirectを使えるようにする

iPhone iOS16以上だとFirebase AuthのsignInWithRedirect/linkWithRedirectがそのままで使えないらしい。。 Login to Firebase does not work on Safari 16.1+ · Issue #6716 · firebase/firebase-js-sdk ベストプラクティスとして対応方法が載っていたので…

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

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

Nuxt3でFirebase Auth v9を使ってみる

Nuxt3&Firebase Auth v9を試してみたときの備忘録。 Nuxt2&Firebase Auth v8とは結構違うので、びっくりする(*´ω`*) まずはインストール $ npm i firebase プラグインでFirebaseの初期化 Firebaseの初期化はプラグインでおこなう。 .clientサフィックスで、…

複数のアカウントでFirebase CLIを使えるようにする(firebase-toolsのv9.9.0〜)

以前、firebase-multiを使った記事を書いたけど、 いつのまにかFirebase CLIの標準機能に入っていた(*´ω`*) Release v9.9.0 · firebase/firebase-tools こっちのドキュメントには書いてないけど、 ・Firebase CLI reference | Firebase Documentation GitHu…

Cloud Functions for FirebaseとContainer RegistryとCloud Storage

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

Firestoreのセキュリティルールでuid以外を利用する(email/email_verified/etc..)

Firestoreのセキュリティルールで、 emailなどのUID以外を利用したいと思ったときに、 調べたときの備忘録。 request.auth.token.*を使えばOKっぽい。 使い方 こんな感じ。 service cloud.firestore { match /databases/{database}/documents { function isE…

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

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

Stripeでクーポンを活用してみた

この記事はStripe Advent Calendar 2021の7日目の記事です。 開発しているStripeを使ったWebサービスで、 クーポンをいろいろ使えるようにしたいなと思い、いろいろ調べたときの備忘録。 使い方が特殊なのか、かなりハマった。。 やりたいこと やりたかった…

BigQueryでGA/Firestore/CloudRunアクセスログを分析する

開発しているWebサービスでいろいろ分析するために、 BigQueryの設定をしたときの備忘録。 全部BigQueryに連動しておけば、SQLでいろいろ分析できるね(´ω`) 構成としてはこんな感じ。 GoogleAnalitics -> BigQuery GoogleAnaliticsはFirebaseのものを利用し…

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

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

Firebase AuthのGoogle認証でカスタムドメインを利用する

とっても便利なFirebase Authentication。 そのままだと、認証時のドメインがこんな感じになる。。 Cloudflareと一緒に使うといい感じに設定できたので、 そのときの備忘録。 公式ドキュメントだとこのあたり。 ・Google ログインのリダイレクト ドメインの…

Firebase Hostingで複数サイトをデプロイする

1つのFirebaseプロジェクトで複数のサイトをデプロイできるようなので、 試してみたときの備忘録。 公式ドキュメントではこのあたり。 ・複数のサイトでプロジェクトのリソースを共有する | Firebase 同じFirebaseプロジェクトなので、AuthやFirestoreの情報…

StripeのFirebase Extensionsを使ってみた - その5 運用前に読んだほうが良いドキュメント編 -

前回の続き。いよいよ最終回。 www.memory-lovers.blog とりあえず、使えるようになってきたので、 公開前に読んだほうがいいドキュメントをまとめてみた。 Stripeの製品 と、その前に、 なんとなく使っていたけど、Stripeの各製品をおさらい。 ・Stripeのす…

StripeのFirebase Extensionsを使ってみた - その4 Nuxtアプリで試してみる編 -

前回の続き。 www.memory-lovers.blog とりあえず、なんとなくの動きがわかったので、 もう少しコードを書いて試してみる。 試してみたサンプルのソースコードはこちら。 ・memory-lovers/example-stripe-extensions サンプルでできること 簡単なサンプルな…

StripeのFirebase Extensionsを使ってみた - その3 拡張機能のソース読んでみた編 -

前回の続き。 www.memory-lovers.blog ドキュメントを読み進めて、使い方はわかったけど、 Stripe側でどんな処理しているのかもやもや。 とりあえず、拡張機能インストール時に追加された 関数の中身を見てWebhookまわりとかを理解していく。 拡張機能のソー…

StripeのFirebase Extensionsを使ってみた - その2 拡張機能の使い方を見てみる -

前回の続き。 www.memory-lovers.blog インストールしてサンプルが動かせたけど、 どうなってるかわからないので、もうすこしドキュメント見てみる。 とりあえず、FirebaseコンソールのExtensionsにある 「この拡張機能の動作」を見ていく。 前回までで「Con…

StripeのFirebase Extensionsを使ってみた -その1 サンプルを試す編-

Firebase ExtensionsにStripeでのサブスク支払い機能が登場! ずっと便利そうだなぁと思ってたけど、やっとさわれたのでその時の備忘録。 Run Subscription Payments with Stripeの拡張機能は、有料プラン(Blaze plan)じゃないと使えないので注意。 公式のデ…

Firebase Emulator Suiteを使ってみた

Firebase Local Emulator Suiteを使ってみたときの備忘録。 初期設定 # バージョンの確認。CLIがv8.14.0以降じゃないと使えない。 $ firebase --version # Firebase自体の初期設定 $ firebase init # Emulator Suiteの初期設定 $ firebase init emulators コ…

GitHub ActionsでNuxtアプリをHostingとFunctionsにデプロイする

GitHub ActionsでFirebase Hostingへデプロイできるようになったので、 試してみたときの備忘録。 HostingへデプロイするGitHub Actionsはいろいろある 以下の2つがあるっぽい。 GitHub Action for Firebase GitHub Actionでfirebase-toolsが利用できるやつ …

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

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

複数のアカウントでFirebase CLIを使えるようにする(firebase-multi)

Firebaseをよく使うようにあり、複数のGoogleアカウントでログインするようになった。 一回ログアウトしてログインするか、--reauthつけてログインすれば、切り替えできるけど、 毎回切り替えるのがめんどくさいので、いろいろ調べてみたときの備忘録。 追記…