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

回答編集履歴

1

説明の追加

2019/12/23 12:30

投稿

chika3742
chika3742

スコア113

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) {