「Unity/Firebase/Realtimedatabase/更新」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「 ==変更があったら呼び出し== <pre> public class SampleScene : MonoBehaviour { void Start() { // Get the root reference location of the database....」) |
|||
行32: | 行32: | ||
==テキストフィールドから送信して、別テキストで受信するまで== | ==テキストフィールドから送信して、別テキストで受信するまで== | ||
#UIからInputFieldを選択し、/Canvas/InputFieldを作成 | #UIからInputFieldを選択し、/Canvas/InputFieldを作成 | ||
− | #UIからTextを選択し、/Canvas/ | + | #UIからTextを選択し、/Canvas/RecerveTextを作成 |
#以下csを用意する。 | #以下csを用意する。 | ||
行69: | 行69: | ||
} | } | ||
Debug.Log("HandleNameValueChanged=" + args.Snapshot.Value.ToString()); | Debug.Log("HandleNameValueChanged=" + args.Snapshot.Value.ToString()); | ||
− | GameObject.Find("/Canvas/ | + | GameObject.Find("/Canvas/RecerveText").GetComponent<Text>().text = args.Snapshot.Value.ToString(); |
} | } | ||
// 送信 | // 送信 | ||
行78: | 行78: | ||
.Child("name") | .Child("name") | ||
.SetValueAsync(name); | .SetValueAsync(name); | ||
+ | GameObject.Find("/Canvas/SendText").GetComponent<Text>().text = name; | ||
} | } | ||
// テキスト変更イベント | // テキスト変更イベント |
2021年9月19日 (日) 11:35時点における版
変更があったら呼び出し
public class SampleScene : MonoBehaviour { void Start() { // Get the root reference location of the database. DatabaseReference reference = FirebaseDatabase.DefaultInstance.RootReference; // 変更があったら呼び出し FirebaseDatabase.DefaultInstance.GetReference("user") .Child("name").ValueChanged += HandleNameValueChanged; // 書き込み FirebaseDatabase.DefaultInstance.GetReference("user") .Child("name") .SetValueAsync("taro"); } private void HandleNameValueChanged(object sender, ValueChangedEventArgs args) { if (args.DatabaseError != null) { Debug.LogError(args.DatabaseError.Message); return; } Debug.Log("HandleNameValueChanged=" + args.Snapshot.Value); } }
テキストフィールドから送信して、別テキストで受信するまで
- UIからInputFieldを選択し、/Canvas/InputFieldを作成
- UIからTextを選択し、/Canvas/RecerveTextを作成
- 以下csを用意する。
入力したテキストが、別端末の同アプリにリアルタイムに表示されるれば成功。
サンプル
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Firebase; using Firebase.Database; using Firebase.Unity.Editor; public class SampleScene : MonoBehaviour { DatabaseReference reference; void Start() { reference = FirebaseDatabase.DefaultInstance.RootReference; FirebaseDatabase.DefaultInstance.GetReference("user") .Child("name").ValueChanged += HandleNameValueChanged; InputField input = GameObject.Find("/Canvas/InputField").GetComponent<InputField>(); input.onValueChanged.AddListener(OnValueChanged); } // 受信 void HandleNameValueChanged(object sender, ValueChangedEventArgs args) { if (args.DatabaseError != null) { Debug.LogError(args.DatabaseError.Message); return; } Debug.Log("HandleNameValueChanged=" + args.Snapshot.Value.ToString()); GameObject.Find("/Canvas/RecerveText").GetComponent<Text>().text = args.Snapshot.Value.ToString(); } // 送信 void SetName(string name) { Debug.Log("SetName=" + name); FirebaseDatabase.DefaultInstance.GetReference("user") .Child("name") .SetValueAsync(name); GameObject.Find("/Canvas/SendText").GetComponent<Text>().text = name; } // テキスト変更イベント void OnValueChanged(string value) { Debug.Log("OnValueChanged=" + value); SetName(value); } }