Firebase概要

概要

Firebaseは、昨年10月にGoogleが買収したモバイルBaaSで、リアルタイム通知機能を持つオブジェクトデータベース(データ構造はJSON形式)です。

特長

リアルタイムデータベース

  • 自動スケール
  • セキュア
  • 2048ビットcertificateを使ってのSSL接続する。

  • オフライン動作
  • オフライン動作しておき、再接続した時にデータを同期する。

認証

auth機能を使ったユーザー認証ができる。

ホスティング

  • 静的コンテンツをデプロイできる
  • バージョン管理できる
  • FirebaseのCDN経由でSSL接続できる

アプリ

Web

JavaScriptによる開発ガイド・サンプルがある。

各言語のラッパがある。

Firebase-Rubyを使ってみます。サービスを使う時、インタプリタ言語は逐次動作チェックできるのでとても便利です。rubyは事前のインストールしておく必要があります。また、アプリも事前に作成しておく必要があります。

$ gem install firebase
$ pry
pry(main)> require 'firebase'
pry(main)> base_uri = 'https://sample-smaphonia.firebaseio.com'
pry(main)> firebase = Firebase::Client.new(base_uri)
=> #<Firebase::Client:0x007fc73ba74540
 @auth=nil,
 @request=
  #<Firebase::Request:0x007fc73ba74108
   @client=
    #<HTTPClient:0x007fc73ba740b8
...
pry(main)> response = firebase.push("todos", { :name => 'Pick the milk', :priority => 1 })
=> #<Firebase::Response:0x007fc73cedad68
 @response=
  #<HTTP::Message:0x007fc73c1fb9a8
   @http_body=
    #<HTTP::Message::Body:0x007fc73c1fb908
     @body="{\"name\":\"-Jxrcq3YzW4qH-N1uiNl\"}",
...

管理画面でデータを見ると確かに登録されています。

f:id:unokun3:20150829131005p:plain

Android

Androidの開発ガイド・サンプルがある。

iOS

iOSの開発ガイド・サンプルがある。Objective-Cがメインだが、Swiftを使ったサンプルもある。

セキュリティ

Firebaseが提供するセキュリティAPIJavaScript風のシンタックスでルールが記述できる。

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Open Data Set

Firebase登録されているOpen Data Set。

ホスティング

静的なコンテンツ(HTML/CSS/JavaScript)をFirebaseで運用できる。

以下の手順でFirebaseにデプロイすることができます。

  • アプリを作成する
  • ツールをインストールする
  • 初期化する
  • デプロイする

ホスティングアプリ(URL)を作成します

Firebaseの管理画面でアプリを作成します。hosting-demoというアプリを作成しました。

ツールをインストールする

$ npm install -g firebase-tools

初期化する

カレントディレクトリを初期化します。firebase.jsonが作成されます。

$ firebase init

初めて実行した場合には、firebaseのアカウント認証を行います。

Please sign into your Firebase account to continue...
Email: 
Password:

アプリ一覧が表示されます。作成したアプリ(hosting-demo)を選択します。

----------------------------------------------------
Your Firebase Apps 
----------------------------------------------------
hosting-demo
----------------------------------------------------
Enter the name of the Firebase app you would like to use for hosting
Firebase app hosting-demo
----------------------------------------------------
Site URL: https://hosting-demo.firebaseapp.com
----------------------------------------------------
Enter the name of your app's public directory.
(usually where you store your index.html file)
Public Directory (current directory)
Initializing app into current directory...
Writing firebase.json settings file...

デプロイします

HTMLファイルを作成して、デプロイします。

$ cat index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
</head>
  <body>
    <p>Hello Hosting Demo!</p>
  </body>
</html>

$ firebase deploy
Public Directory: /Users/unokun/work/firebase/hosting-demo
Preparing to deploy Public Directory...
Uploading 1 files with total compressed size = 208 B
progress: 100%
Successfully deployed
Site URL: https://hosting-demo.firebaseapp.com, or use firebase open
Hosting Dashboard: https://firebase.com/account then view the hosting section of your app