概要
Ruby から Firebase のデータベースにデータを保存してしました
タイトルにある通りレガシーな方法を紹介します
レガシーというのは認証部分のことを指しており、今回紹介する方法は今後推奨されない方法、廃止される方法となる可能性が高いのでご注意ください
環境
- Mac OS X 10.10.5
- Ruby 2.3.1p112
- Gem 2.5.1
- firebase 0.2.6
事前準備
Firebase へのプロジェクトの作成およびアプリケーションの作成は予め実施しておいてください
この記事内では過去に作成したアプリを使います
認証情報の取得
Ruby クライアントが使用する認証情報を取得します
この認証を使う方法がレガシーな方法になっています
作成したプロジェクトを開き
プロジェクトの設定 -> サービスアカウント -> データベースのシークレット -> シークレット -> 表示する
でシークレットキーを取得できるのでメモしておいてください
アクセスするとわかると思いますがここでも「データベースのシークレットは既に廃止されており、レガシーの Firebase トークン生成ツールを使用します。Firebase Admin SDK を使用してソースコードを更新してください。」と出て来ます
ベース URI の取得
各プロジェクトごとに割り当てられているデータベース用のベース URI を取得します
プロジェクトから左メニューの「データベース」を選択すると表示されるのでメモしておきます
データを保存するスクリプトの作成
取得した認証情報とベース URI を使用してスクリプトを作成します
- bundle init
- vim Gemfile
gem "firebase"
- vim test.rb
require "firebase"
base_uri = 'https://your-project-id.firebaseio.com/test'
secret_key = 'your-secret-key'
firebase = Firebase::Client.new(base_uri, secret_key)
response = firebase.push("todos", { :name => 'Pick the milk', :priority => 1 })
puts response.success?
puts response.code
puts response.body
puts response.raw_body
- bundle install
- bundle exec ruby test.rb
で実行までできます
base_uri
と secret_key
の部分は取得した情報を記載しましょう
動作確認
認証エラー等が出ないで 200 が返ってくればデータが保存されています
コンソールで Database を確認すると以下のように値が保存されているのがわかると思います
最後に
Ruby で Firebase に値を保存してみました
取得する方法もあるのですが、クエリを使ってフィルタを掛けるのに苦戦しています、、、
こちらもわかったらポストしようかなと思います
あとは、認証方式も正式なやつを使った版を試してみようかなと思います
0 件のコメント:
コメントを投稿