①のコード
kotlin
1 2private fun dbCheck(userid:String):String?{ 3 var dbError:String? = null 4 val db = FirebaseFirestore.getInstance() 5 val docRef = db.collection("Users").document(userid) 6 docRef.get().addOnSuccessListener { document-> 7 dbError = if(document.exists()){ 8 "既に利用されているIDです" 9 }else { 10 null 11 } 12 } 13 return dbError 14 }
②のコード
kotlin
1private fun dbCheck(userid:String){ 2 var dbError:String? = null 3 val db = FirebaseFirestore.getInstance() 4 val docRef = db.collection("Users").document(userid) 5 docRef.get().addOnSuccessListener { document-> 6 dbError = if(document.exists()){ 7 "既に利用されているIDです" 8 }else { 9 null 10 } 11 return@addOnSuccessListener dbError //ここがエラーになる 12 } 13 }
そこで入力されたUserIDのdocumentが存在すればエラーを返すというコードを書きました。
しかし、
➀のコードだとdbErrorの変数が更新されずにnullのまま返されてしまいます
➁のコードだとreturn文でエラーが出てしまいます
どこを改善すればエラーを返すことができるのでしょうか?

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/23 06:47 編集
2020/08/24 02:53
2020/08/24 09:24
2020/08/24 12:15
2020/08/24 12:23
2020/08/25 02:04
2020/08/25 10:19
2020/08/25 11:41
2020/08/25 11:44