2016年11月14日月曜日

Ruby で Firebase のデータベースにレガシーな方法でデータを保存してみた

概要

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 を使用してソースコードを更新してください。」と出て来ます
ruby_firebase_legacy_getting_secret.png

ベース URI の取得

各プロジェクトごとに割り当てられているデータベース用のベース URI を取得します
プロジェクトから左メニューの「データベース」を選択すると表示されるのでメモしておきます
ruby_firebase_legacy_getting_baseuri.png

データを保存するスクリプトの作成

取得した認証情報とベース 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_urisecret_key の部分は取得した情報を記載しましょう

動作確認

認証エラー等が出ないで 200 が返ってくればデータが保存されています
コンソールで Database を確認すると以下のように値が保存されているのがわかると思います
ruby_firebase_legacy_ret.png

最後に

Ruby で Firebase に値を保存してみました
取得する方法もあるのですが、クエリを使ってフィルタを掛けるのに苦戦しています、、、
こちらもわかったらポストしようかなと思います

あとは、認証方式も正式なやつを使った版を試してみようかなと思います

参考サイト

0 件のコメント:

コメントを投稿