30
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vuexfire で Firebase と Vuex をサクッと試してみる

Last updated at Posted at 2017-09-23

最近 Firebase を触ってみて便利だったのと Vuex で何か作りたいなと思って検索すると vuexfire なる便利そうなものがあったので使い方をざっくりまとめてみました。 アプリの起動とデモを試すだけで Vuex の解説などは行いません。

準備と Example のデモ

今回利用するライブラリはこちら。 https://github.com/posva/vuexfire
データは Firebase の Realtime Database を利用し、クライアント側に vue.js と Vuex を利用し、API通信することで動作します。

ライブラリのダウンロードと Example の実行

ライブラリをダウンロードします。

$ git clone https://github.com/posva/vuexfire.git

ライブラリをダウンロードしたら、以下の index.html ファイルをブラウザで開くと早速試せます。

$ open /vuexfire/examples/TodoApp/index.html

サーバーは必要ありません、ブラウザだけで動作します。

Realtime Database の動作

todo アプリのデモです。入力と削除ができます。

すでに誰かが入れたデータがリアルタイムに共有されています
record4.gif
2つのブラウザで index.html を同時に立ち上げると、リアルタイムに変更が反映
record4.gif

何が起こっているかというと、Firebase の Realtime Database と言う機能を利用しており、 「Add」ボタンの押下でデータベースを更新しています。Firebase の Realtime Database は

データが変更されるたびに、接続されているあらゆるデバイスがその更新を数ミリ秒以内に受信します

そのため、ブラウザの変更が即時に反映されます。
Realtime Database については、FirebaseのRealtime Databaseのざっくり概要の記事がわかりやすいです。
では、vuexfire のサンプルのデータではなく、自分の firebase アプリにしてみましょう。

Firebase の設定

firebase へ新しいプロジェクトを登録

https://firebase.google.com/?hl=ja にアクセスします。利用には google のアカウントが必要です。
https://console.firebase.google.com/?hl=ja コンソールにアクセスします。

「プロジェクトを追加」をクリック

プロジェクトに名前をつけて「プロジェクトを作成します」
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32363039352f34346438383835342d373636352d323937662d303761352d6235373163333836643063362e706e67__938×1016_.png

データベースへのアクセス権限の設定

デフォルトの設定だと、ログインが必要になります。今回はデモのためパブリックにしてみます。
左のバーの Database -> ルール を以下のように変更します。

データベースの読み込み書き込みルール
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
変更前 変更後
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32363039352f33333164326364622d363861332d383765342d613838352d3231376131366433333961372e706e67__1504×968_.png 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32363039352f32613565366231322d656634632d336230382d363837372d3733356161326163356238652e706e67__1552×964_.png

データベースを更新してみる

index.html の config を更新します。
Realtime Databse のデータのリンクをコピーして databaseURL にセットします。
vuexfire-test_–_Realtime_Database_–_Firebase_console.png

index.html
    /* global Vue, Vuex, firebase, VuexFire */
    var config = {
      databaseURL: 'データベースに表示されている値',
    }

ついでに、 vuexfire をライブラリ内から読み出しているところを、自身のプロジェクトで利用するときのために、 cdn から呼び出すように変えておきます。

index.html
- <script src="../../dist/vuexfire.js"></script>
+ <script src="https://unpkg.com/vuexfire"></script>

index.html をブラウザで開き、入力してみると、まっさらなページが開き、値を入力できます

自分で作った firebase に接続してアプリを実行する
record4.gif

データベースを見ると、入力された文字が Firebase 側にも反映されているのがわかります。
vuexfire-test_–_Realtime_Database_–_Firebase_console.png

これだけで、 Firebase と通信するアプリができました。

所感

思ったより簡単にTODOアプリなど単純なものが作れそうです。また、 index.html 内に、Vuex のコードが100行以内で書かれているので、Vuex のことはじめとしてはちょうど良いのではないでしょうか。
https://github.com/posva/vuexfire/blob/5f12fd66a602f8e97c48beaddcb56372cb3dc55c/examples/TodoApp/index.html

30
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?