質問編集履歴

5

誤字の修正

2020/03/22 14:17

投稿

_Beginner
_Beginner

スコア103

test CHANGED
File without changes
test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
 
116
116
 
117
- ####例外 **Input string was not in a correct format.** 発生する件について
117
+ ####例外 __Input string was not in a correct format.__ 発生する件について
118
118
 
119
119
 
120
120
 
@@ -198,7 +198,7 @@
198
198
 
199
199
 
200
200
 
201
- ######エラー内容
201
+ ######エラー(例外)内容
202
202
 
203
203
  > System.FormatException: Input string was not in a correct format.
204
204
 

4

追記2を追加

2020/03/22 14:17

投稿

_Beginner
_Beginner

スコア103

test CHANGED
File without changes
test CHANGED
@@ -86,9 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- ---
90
-
91
- 追記
89
+ ##追記
92
90
 
93
91
 
94
92
 
@@ -107,3 +105,117 @@
107
105
  ```
108
106
 
109
107
  こんな風にしたら楽なんですけど、取得したい値のキーはこれだけじゃなくて、汎用性がなくなっちゃうので、非同期処理を待つようなことはできないか知りたいです。
108
+
109
+
110
+
111
+
112
+
113
+ ##追記2
114
+
115
+
116
+
117
+ ####例外 **Input string was not in a correct format.** 発生する件について
118
+
119
+
120
+
121
+ ```C#
122
+
123
+ void Start()
124
+
125
+ {
126
+
127
+ Invoke("GetVal", 5);
128
+
129
+ }
130
+
131
+
132
+
133
+ private async void GetVal()
134
+
135
+ {
136
+
137
+ int getScore = await FirebaseController.GetIntOfInformation("Score");
138
+
139
+ Debug.Log("Score"); //ここでスコアを取得したい
140
+
141
+ }
142
+
143
+
144
+
145
+ public async Task<int> GetIntOfInformation(string name)
146
+
147
+ {
148
+
149
+ try
150
+
151
+ {
152
+
153
+ var snapshot = await FirebaseDatabase.DefaultInstance
154
+
155
+ .GetReference("USERS")
156
+
157
+ .Child(id) //ユーザー識別(FirebaseAuthment)で取得したユーザーid
158
+
159
+ .Child("Information")
160
+
161
+ .Child(name)
162
+
163
+ .GetValueAsync().ConfigureAwait(false);
164
+
165
+
166
+
167
+ return int.Parse(snapshot.ToString());
168
+
169
+ }
170
+
171
+ catch (Exception exception)
172
+
173
+ {
174
+
175
+ Debug.LogError(exception);
176
+
177
+ return 0;
178
+
179
+ }
180
+
181
+
182
+
183
+ }
184
+
185
+ ```
186
+
187
+
188
+
189
+ このコードで**Debug.LogError(exception);**が常に呼び出されてしまいます。
190
+
191
+ Firebaseコンソール上では __USERS/"ユーザーid"/Information/Score__に値が入っています。
192
+
193
+
194
+
195
+ ちなみに、例外処理が起きるということは戻る数値も正しくないのでエラーにしちゃったほうがいいですよね?
196
+
197
+ (適当な数字を戻して上書きしてしまったりするのを防ぐにはエラーにする以外あるのでしょうか。)
198
+
199
+
200
+
201
+ ######エラー内容
202
+
203
+ > System.FormatException: Input string was not in a correct format.
204
+
205
+ at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x00057] in <567df3e0919241ba98db88bec4c6696f>:0
206
+
207
+ at System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) [0x00013] in <567df3e0919241ba98db88bec4c6696f>:0
208
+
209
+ at System.Int32.Parse (System.String s) [0x00007] in <567df3e0919241ba98db88bec4c6696f>:0
210
+
211
+ at FirebaseController+<GetIntOfInformation>d__10.MoveNext () [0x000cd] in C:\Users\users\UnityProjects\project\Assets\FirebaseController.cs:133
212
+
213
+ UnityEngine.Debug:LogError(Object)
214
+
215
+ <GetIntOfInformation>d__10:MoveNext() (at C:/Users/user/UnityProjects/TestProject/Assets/FirebaseController.cs:137)
216
+
217
+ System.Threading.Tasks.TaskCompletionSource`1:SetResult(DataSnapshot)
218
+
219
+ Firebase.Database.<WrapInternalDataSnapshotTask>c__AnonStorey0:<>m__0(Task`1) (at Z:/tmp/tmp.hapPVC8cw6/firebase/database/client/unity/proxy/Query.cs:139)
220
+
221
+ System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()

3

コードの修正

2020/03/22 14:12

投稿

_Beginner
_Beginner

スコア103

test CHANGED
File without changes
test CHANGED
@@ -16,11 +16,9 @@
16
16
 
17
17
  int i = 0;
18
18
 
19
- void GetValue()
19
+ void GetValue(string path)
20
20
 
21
21
  {
22
-
23
- string path = ?? //欲しい情報;
24
22
 
25
23
  i = GetIntOfInformation(path);
26
24
 
@@ -37,8 +35,6 @@
37
35
  int num = 0;
38
36
 
39
37
  FirebaseDatabase.DefaultInstance
40
-
41
- .GetReference(id)
42
38
 
43
39
  .Child("Information")
44
40
 

2

GetIntOfInformation()の引数について修正

2020/03/19 13:23

投稿

_Beginner
_Beginner

スコア103

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,9 @@
20
20
 
21
21
  {
22
22
 
23
+ string path = ?? //欲しい情報;
24
+
23
- i = GetIntOfInformation();
25
+ i = GetIntOfInformation(path);
24
26
 
25
27
  Debug.Log(i);
26
28
 
@@ -40,7 +42,7 @@
40
42
 
41
43
  .Child("Information")
42
44
 
43
- .Child(name)
45
+ .Child(path)
44
46
 
45
47
  .GetValueAsync().ContinueWith(task =>
46
48
 

1

2020/03/19 13:19

投稿

_Beginner
_Beginner

スコア103

test CHANGED
@@ -1 +1 @@
1
- voidメソッドの中非同期で取得した値を入れたい
1
+ voidメソッドの中非同期で取得する値を待ちたい
test CHANGED
File without changes