回答編集履歴
1
説明の追加
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
Firebaseは
|
1
|
+
Firebaseは基本的にネットを介して処理をします。ネットを介した処理は時間がかかるため、非同期処理ということをしないとサーバーから返事があるまでアプリはフリーズ状態になります。
|
2
|
-
つまり、値を返すタイミングと翻訳が完了するタイミングは
|
2
|
+
つまり、`firebaseTranslator`関数が値を返すタイミングと翻訳が完了するタイミングは異なります。そのため、関数から直接値を返すことは出来ません。
|
3
3
|
ですので、以下のように「完了したら実行する処理」として書く必要があります。
|
4
4
|
```Kotlin
|
5
5
|
fun firebaseTranslator(word: String, listener: (result: String?, errorMessage: String? = null) -> Unit) {
|