【发布时间】:2020-10-21 13:45:41
【问题描述】:
在onSuccessListener执行完毕后我要调用返回数据的函数中。
private fun getFirebaseDataReturnsResult(
fieldName: String,
documentName: String,
userUID: String) : String {
var data : String? = null
val docRef = db.collection(documentName).document(userUID)
docRef.get(source)
.addOnSuccessListener { document ->
if (document != null) {
data = document.getString(fieldName).toString()
}
}
.addOnFailureListener {
docRef.get().addOnSuccessListener { document ->
data = document?.getString(fieldName).toString()
}.addOnFailureListener { exception ->
data = exception.message.toString()
}
}
return data!!
}
db 是 Cloud Firestore 的一个实例。
在 IO 协程范围内的 onViewCreated() 上调用 getFirebaseDataReturnsResult() 方法。
我尝试在返回数据之前添加delay(),但我认为这似乎是一种不好的做法。
【问题讨论】:
标签: android firebase google-cloud-firestore async-await kotlin-coroutines