teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

大幅修正しました

2018/08/28 15:52

投稿

logle
logle

スコア14

title CHANGED
@@ -1,1 +1,1 @@
1
- 非同期処理でデータベースから取ってきた値を返す関数を作りた
1
+ Unityの非同期処理がわから
body CHANGED
@@ -1,16 +1,23 @@
1
+ 現在UnityでFirebaseを使って再利用可能なデータの読み書きをする処理を作りたいと思っています。
2
+ 書き込みに関しては非同期でかきこんで終わりなので作れました。
3
+
1
- C#4firebaseアクセスしてデータ取得するメソッドを作りたいのですが、取得した値をどのように返せばいいかわかりません。
4
+ 読み込みは、読み込み後も処理続けたいと思っているのですが、データの読み込みが非同期になっているのでどのように再利用可能なコードにすればいいかわかりません。
5
+
6
+ firebaseのデータ受け取りのコードは以下のようになっています。
2
7
  ```C#
3
- public DataSnapshot GetData(){
4
- FirebaseDatabase.DefaultInstance
8
+ FirebaseDatabase.DefaultInstance
5
9
  .GetReference("Leaders")
6
- .GetValueAsync().ContinueWith(task => {
10
+ .GetValueAsync().ContinueWith(task =&gt {
7
11
  if (task.IsFaulted) {
8
- }
12
+ }
9
13
  else if (task.IsCompleted) {
10
14
  DataSnapshot snapshot = task.Result;
11
- // ここのsnapshotを返したい。
15
+
12
16
  }
13
17
  });
14
- }
15
18
  ```
19
+
20
+ このコードを関数化しようと考えていたのですが、非同期なのでsnapshot変数にデータが入ったタイミングでreturnすることができませんでした。
21
+
22
+ このような処理を再利用可能に扱うためにはどのようにするべきでしょうか?
16
- よろしくおねがいします。
23
+ ご回答よろしくおねがいします。