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 方法來獲取這些資料。

uj5u.com熱心網友回復:
當您使用以下呼叫時:
.orderBy("Panel Sayisi",Query.Direction.DESCENDING)
這意味著僅根據“Panel Sayisi”欄位對檔案進行排序,實際上并不能解決問題。問題是您不知道“c4Q5...q4vP”檔案是最后添加的檔案。要解決此問題,您必須添加一個 Firestore Timestamp 型別的附加欄位,如我在以下帖子中的回答中所述:
- 將資料類的物件添加到 Kotlin 中的 Firestore 時如何添加 Firebase 時間戳?
然后使用以下查詢:
val db = FirebaseFirestore.getInstance()
val query = db.collection("Posts").orderBy("timestamp", Query.Direction.DESCENDING).limit(1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395205.html
標籤:安卓 火力基地 科特林 谷歌云平台 谷歌云firestore
