まずはFirebaseSDKをUnityProjectにつっこむ.そこからのやり方
始める前
Firebase プロジェクトを作成
ダウンロードしたGoogleService-Info.plist
をUnityのプロジェクトにつっこむ.
ビルド
ビルドする
XCodeでRun
cocoapodsをダウンロード
途中で止まったので,以下のサイトを参考に直す
http://westhillworker.com/cocoapods-progrem/
Build & Runで成功
Setting up public Access
下のサイトを参考に設定をpublicに変更
実践
スクリプトを書く
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Unity.Editor;
using Firebase.Database;
public class FirebaseManager : MonoBehaviour {
public class QuestData
{
public int questId;
public bool isCompleted;
public QuestData(){
}
public QuestData(int questId, bool isCompleted){
this.questId = questId;
this.isCompleted = isCompleted;
}
}
private DatabaseReference _databaseReference;
// Use this for initialization
void Start () {
// Set this before calling into the realtime database.
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://アプリ名-数字.firebaseio.com/");
// Get the root reference location of the database.
_databaseReference = FirebaseDatabase.DefaultInstance.RootReference;
// やりたい方のコメントアウトを外す
// 書き込み
//WriteNewQuestData (1001, 1, false);
// 読み込み
ReadQuestData(1001);
}
//書き込み
void WriteNewQuestData(int userId, int questId, bool isCompleted){
var questData = new QuestData (questId, isCompleted);
string json = JsonUtility.ToJson (questData);
// データベースにJson形式で書き込み
_databaseReference
.Child ("users")
.Child (userId.ToString ())
.SetRawJsonValueAsync (json);
// 値を直接書き込む場合はこっち
// _databaseReference
// .Child ("users")
// .Child (userId.ToString ())
// .Child (questId.ToString ())
// .SetValueAsync (isCompleted);
}
// 読み込み
void ReadQuestData(int userId){
FirebaseDatabase.DefaultInstance
.GetReference("users")
.GetValueAsync().ContinueWith(task=>{
if(task.IsFaulted){
Debug.LogError("失敗");
}
else if(task.IsCompleted){
DataSnapshot snapshot = task.Result;
string json = snapshot.Child(userId.ToString())
.GetRawJsonValue();
Debug.Log("Read: "+ json);
}
});
}
}
読み書きできた.