ノンカフェインであなたにやさしい

Ruby,Rails,HTML,CSS,Reactなど

FirebaseFunctionsで素のJSを返す

実現したいこと

FirebaseFunctionsを使ってリクエスト元やパラメータに合わせたJSファイルを作り返したい

こんな風に使いたい

<script src="https://asia-northeast1-fir-functions-return-js.cloudfunctions.net/hello"></script>

Functionsの実装

functions/index.js

exports.hello = functions
  .region('asia-northeast1')
  .https.onRequest((request, response) => {
    // Using query
    const name = request.query.name || 'defaultName';
    // Return alert js
    response
      .contentType('application/javascript; charset=utf-8')
      .send(`alert('Hello ${name}')`);
  });

response.send で返してあげるだけで読み込み可能でした。

サンプル

サンプルページ

fir-functions-return-js.firebaseapp.com

ソースコード

github.com

RSpec 1つのexpectで複数のchangeを検証する

表題通り1つのexpectに対して複数のchangeを検証したい

it '複数のchangeを見るぞ' do
  expect { subject }.to change { x }.by(1).
                    and change { y }.by(2)
end

見づらいのであまり使いたくない…

参考 stackoverflow.com

RSpec3.1からの機能らしい rspec.info

LastPassエクステンションで共有フォルダの内容が更新されない時の対応

別アカウントで共有フォルダの内容を変更したのにChromeエクステンションのLastPassでは内容が見れなかった時の対応

その他のオプション -> 高度な設定 -> サイトを更新 で無事更新されました。

f:id:kuronekopunk:20190819143456p:plain

f:id:kuronekopunk:20190819143501p:plain

f:id:kuronekopunk:20190819143504p:plain

can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

rails sbundle exec ... などで怒られた

can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

原因

bundler のバージョンがGemfile.lockと違うことが問題だった

~~~~


BUNDLED WITH
   2.0.1
$ bundler -v
=> Bundler version 1.3.0

対応

必要なバージョンのbundlerをインストールする

$ gem install bundler -v 2.0.1

ヤッタネ!

AndroidStudioで『エラー: パッケージorg.apache.httpは存在しません』を解消する

古いアプリのSDKが21だったためバージョンを上げたら次のようなエラーが

エラー: パッケージorg.apache.httpは存在しません

Android 6.0(API レベル 23)以降 org.apacheパッケージ削除

org.apacheパッケージが削除されたようです。

詳細はこちら https://developer.android.com/sdk/api_diff/23/changes.html?hl=ja

対応

とりあえず動けばということで古いパッケージを使います。

build.gradle に以下を追加

android {
    useLibrary 'org.apache.http.legacy'
}