【发布时间】:2022-01-26 06:50:30
【问题描述】:
private fun getData(){
firestore.collection("Posts").addSnapshotListener { value, error ->
if (error!=null){
Toast.makeText(requireContext(),error.localizedMessage,Toast.LENGTH_SHORT).show()
}else{
if (value !=null){
if (!value.isEmpty){
val documents = value.documents
for (document in documents){
val pc = document.get("Panel Sayisi") as String
val ps = document.get("Panel Boyutu") as String
val ls = document.get("Arazi Eğimi") as String
val lsi = document.get("Arazi Boyutu") as String
val c = document.get("Şehir") as String
val post = Post(pc,ps,ls,lsi,c)
postArrayList.add(post)
}
}
}
}
val db = FirebaseFirestore.getInstance()
db.collection("Posts").orderBy("Panel Sayisi",Query.Direction.DESCENDING).limit(1)
.get()
.addOnCompleteListener {
val result : StringBuffer = StringBuffer()
if (it.isSuccessful){
for (document in it.result){
result.append(document.data.getValue("Panel Sayisi"))
}
verimText.setText(result)
}
}
}
}
它显示了我添加到 Cloud Firestore 中的所有数据,这些数据在 verimText 中具有关键字“Panel Sayisi”。我只想显示最后输入的数据。
这就是问题所在。我添加的最后一个文件添加在中间。这就是为什么我最后一次调用或第一次调用的值没有改变的原因。所以它总是调用相同的值。这个中间值应该写在末尾或开头。所以我可以通过调用 ASCENDING 或 DESCENDING 方法来获取这些数据。
【问题讨论】:
-
那么共享代码有什么问题?
-
它没有显示我在verimText中输入的最后一个“Panel Sayisi”数据。
-
你有没有试过检查如果任务不成功会发生什么?
-
应用程序不会以任何方式崩溃或崩溃。我在verimText中给出的数据也是写的。但是这个数据不是我输入的最后一个数据。它显示了与 Firestore 中的关键字“Panel Sayisi”相对应的另一个数据。
-
所以很可能查询没有返回正确的数据,对吧?
标签: android firebase kotlin google-cloud-platform google-cloud-firestore