gpt4 book ai didi

android - Firestore 只允许我加载一个文档

转载 作者:行者123 更新时间:2023-11-29 02:36:27 25 4
gpt4 key购买 nike

那么,为什么我可以从 this one 中调用任意一对键值对? , 但不能来自 this one

这是我的代码

 var firstKitList = mutableListOf<String>()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kit_list)

val mainKitList = kitListView
val mainListViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, firstKitList)
mainKitList.adapter = mainListViewAdapter

db1.collection("cities").get().addOnSuccessListener { snapshot ->
for (document in snapshot.documents) {
val data = document.data
val country = data["USA"] as String

firstKitList.add(country)



}
mainListViewAdapter.notifyDataSetChanged()
}

如果我将“cities”切换为“KitList”,将 val country = data["USA"] as String 切换为 val rope = data["skipping"] as String 它有效...有人可以向我解释一下吗?

最佳答案

第一个答案:在您的 Firestore 数据中,我没有看到键“USA”和“skipping”的数据。您确定此数据正确吗?

回答第二个问题。我建议你用你想要的字段创建数据类。然后,您可以使用代码将您的文档数据映射到您的类:

document.data.toObject(DataClass::class.java)

或者,如果您在 QuerySnapshot 中有多个文档:

val dataList = mutableListOf<DataClass>()
querySnapshot.documents.mapTo(dataList) { it.toObject(DataClass::class.java)}

根据您的代码,您可以这样做:

querySnapshot.documents.mapTo(firstKitList) { it.toObject(DataClass::class.java)}

@编辑1这是你的数据模型:

class City(var cityId: String,
var state: String,
var name: String,
var country: String) {

//remember to add empty constructor.
constructor() : this("", "", "", "")
}

当您点击此项目上的列表时,使用所有这些数据创建一个 Intent,并开始新的 Activity。

@编辑2如果要添加具有特定 id 的文档:

FirebaseFirestore.getInstance().collection("collectionName")
.document("documentId, for example LA").set(city)

如果你想将 id 传递给之前的 Activity ,学习一些关于 startActivityForResult 方法的知识:)

关于android - Firestore 只允许我加载一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46731456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com