Topic

firebase

A collection of 8 issues

FirebaseでSPAやりたいときの設定

SPA をおいてみたけど、 index.htmlからしか遷移できない!ってときに。 しばらく転送されてなかった React(Gatsby)でサイトリニューアルしてからというもの、どんどん落ちる検索ランキング。 なんでかなーと思ったら、/index.html 以外、URLでの直接リンクで表示できないようになっていた。 原因は Firebase の設定 SPA の場合、ブラウザのアドレス欄の表示が変わってもすべて /index.html で表示されています。 そのまま /blog/post/react/react-on-firebase/ を表示させようとしても、そこには html ファイルがないため何も表示できません。 以前は nuxt.js でジェネレートしていたので大丈夫だったんですね。 この問題は、Firebase 側の設定ですべての HTML リクエストは /index.html を返してもらう必要があります。 リダイレクトではなく、フォワードのイメージですね。 設定は Firebase.json
1 min read

firebaseで購読中マンガの新刊チェックCRON作った

マンガって、いつの間にか新刊が出てますよね。 毎回 Kindle で買ってるんだから、 Amazon もリコメンドしてくれればいいのに。 お気に入り著者の新刊メールに登録していても、なんか欲しい情報じゃなく、微妙な感じだし。 発売中に遅れてお知らせじゃなく、発売前に知りたいんだよ! それ、firebase にやらせよう 月半ば、月末に新刊情報を取得して slack 通知するやつを作りたい。 仕様は下記の通り。 * 月半ば、月末に cron 実行 * 楽天ブックスの新刊マンガ API から最新版を取得 * 全部だと情報過多なので、自分の購読しているマンガ・著者のみ抽出 * レポートは slack に投稿 これなら firebase の機能だけでイケそうじゃない? ってことで作ってみました。 ※このあと掲載しているサンプルコードは抜粋なのでこのままでは動作しません 月半ば、月末に cron 実行 firebase では cron実行 が可能です。 関数のスケジュール設定によると、課金は Google アカウントごとに3
3 min read

楽天のマンガ新刊APIでJSONのパース問題

楽天ブックスでは、非公式ながら最新の発売マンガ一覧を提供してくれる API があります。 node.jsで取得するコードは簡単なのですが、何度やっても JSON パースエラーになります。 const rp = require('request-promise') const url = 'https://books.rakuten.co.jp/event/book/comic/calendar/2019/11/js/booklist.json' rp.get(url, options).then(function(body) { JSON.parse(body) // ここでエラーになる }) うーん、レスポンスのテキストをコピーして JavaScript オブジェクト作ってもエラーにならないのに・・・? エラー情報を読み解いてみる error
1 min read

firebase functionsのメモリ使用量を制御する

functionsの課金方式を確認してみました。 → Cloud Functions の料金 呼び出し回数の他にCPU時間というのがありまして、使用メモリを下げると CPU のスペックも下がるという仕様。 2019/11/22 現在、下記のような料金体系になっています。 メモリ CPU1 料金/100 ミリ秒 128 MB 200 MHz $0.000000231 256 MB 400 MHz $0.000000463 512 MB 800 MHz $0.000000925 1,024 MB 1.4 GHz $0.000001650 2,048 MB 2.4 GHz
1 min read

firebase functionsのメモリ使用量をコンソールから制御する

firebase functionsのメモリ使用量を変更する方法。 Google Cloud Platform Console でメモリ割り当てとタイムアウトを設定するには プログラム制御の必要ないのがこの方法。 一度設定したら関数を更新しても設定は保持してくれるようです。 functions のダッシュボードから、右端のメニューをクリック 使用状況の詳細な統計情報をクリック 関数の詳細の横にある「編集」をクリック 割り当てられるメモリを変更 デプロイして完了 以上、操作は簡単ですが1つ1つ設定していく必要があるので、関数が多いと面倒です。 プログラムからも制御できるので、「firebase functions のメモリ使用量を制御する」も参考にどうぞ。
1 min read

firebase CLIで操作用tokenを使う

複数の Google アカウントを使い分けて firebase プロジェクトに関わっていると、いちいちfirebase loginし直さなければならないのが面倒です。 firebase CLI実行時に、--tokenでトークンをオプション指定することでユーザの切替なしにfirebaseコマンドを実行可能になります。 手順 1. firebase のトークンを取得する 2. firebase コマンドを--token [token]オプションを付けて呼び出す これだけです! なかなか公式情報が見つからず、Qiita 記事を参考にさせていただきました。 Firebase プロジェクトのデプロイについて firebase のトークンを取得する トークンを発行するためのコマンドを打ちます。 firebase login:ci 直後にブラウザから GoogleID へのログインを求められます。 プロジェクトで使用する GoogleID でログインするとトークンが発行されます。 Visit this URL on any device to log
1 min read

firebase functionsをローカルでテスト

前回:firebase functions でサーバレス APIの続き firebase functionsでは、デプロイしなくてもローカル環境でテストが可能です(できないテストもあります)。 せっかくなのでオリジナルのプログラムを作って、ローカル環境で動作確認をしてみます。 おみくじ API を作る とりあえず動けばいいのでガバガバの仕様。 * GET で API が呼ばれる * JSON 形式で大吉〜大凶を返す これだけ。レアくじの出現率なんか気にしない。平等です。 おみくじ Function を作成 const functions = require('firebase-functions'); // cors許可のためインポート const cors = require('cors')({ origin: true }); const kuji = ["大吉", "中吉&
1 min read

firebase functionsでサーバレスAPI

hello firebase functions firebase で functions。 functionsはfirebaseのサービスの中で、Node.jsによる関数を実行できるすごいやつです。 サーバサイドプログラムを動かすのに自分でサーバを用意する必要がないんです! いままでherokuなどを使っていましたが、無料の spark 枠でも使えるので、簡単な API を作って動かしてみました。 firebase-tools のインストール 公式サイトに書いてあるとおりです。 npmかyarnを使ってグローバルにインストールします。 npm install -g firebase-tools functions を使う準備 使いたいプロジェクトで以下を実行。 ウィザードに従って、JavaScript か TypeScript か選べぇ? firebase init functions これで空のfunctionsディレクトリが作成される。 関数の作成 functionsディレクトリが作成されたら、直下にindex
1 min read

Subscribe to 猫好きが猫以外のことも書く

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe