13
11

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.

FirebaseをUnityで使うメモ (RealtimeDatabase)

Last updated at Posted at 2016-10-15

追記: OSS版のライブラリはなくなります。https://firebase.google.com/docs/unity/setup を参考にしてください

Firebaseはリアルタイムで同期してくれるデータベースがあります。
Unityで使えたらゲームに手軽にオンライン要素を組み込むことができそうです。

ただ公式のSDKは絶賛開発中なので製品で使うのは厳しいです。
ゼミの課題で「オンライン対応してます!!!」みたいなことをしたい場合以外はやらないのが賢明だと思います。

環境

Firebase 3.5.0
Mac El Capitan
Unity 5.3.5f1

インストール

GitHubのリポジトリにfirebase.unitypackageがあるのでダウンロードします。

プロジェクトを開いた状態でダウンロードしたパッケージをクリックすれば取り込むAssetsを選択できます、とりあえず全部入れておきましょう。

ここからMacの人はFirebaseProxyのライブラリのリンクを切り替える必要があります。
僕の環境では/Library/Java/Home/jre/lib/server/libjvm.dylibにあったので以下のコマンドをプロジェクトのルートで実行しました。

$ install_name_tool -change "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/server/libjvm.dylib" "/Library/Java/Home/jre/lib/server/libjvm.dylib" Assets/Plugins/Editor/FirebaseProxy.bundle/Contents/MacOS/FirebaseProxy

Firebase のセットアップ

コンソールで新規のプロジェクトを作成します。

Database > ルール で以下のようにセキュリティルールを変更しました。
完全に公開されちゃってるので 開発用以外ではやらないようにしておきましょう。

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

ちゃんと認証を入れておきたかったのですがEditorでは匿名認証ができなくて諦めたからです。
AbndroidかiOSに書き出せば認証はできるかもしれないです。

動作確認

Assets/TestScript を編集しながら試しました。

TestScript.cs
using UnityEngine;
using System.Collections;

public class TestScript : MonoBehaviour
{
    IFirebase firebase;

    // Use this for initialization
    void Start()
    {
        firebase = Firebase.CreateNew("https://<projectID>.firebaseio.com/");

        firebase.ChildAdded += (sender, e) =>
        {
            Debug.Log("Child added!: " + sender);
        };

        firebase.ChildRemoved += (sender, e) =>
        {
            Debug.Log("Child removed!");
        };

        firebase.SetJsonValue("{\"example_child\":{\"child_working\" : true}}");
    }

    // Update is called once per frame
    void Update()
    {

    }
}

これで実行するとルートディレクトリに書き込まれます。

pathを指定したい場合はCreateNewのところで以下のようにpathを指定します。

Firebase.CreateNew("https://<projectID>.firebaseio.com/player");

こうすることでplayer内に書き込めました。

13
11
6

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
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?