那么,为什么我可以拨打来自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()
}
如果我切换&#34;城市&#34; for&#34; KitList&#34;并且val country = data["USA"] as String
val rope = data["skipping"] as String
它有效......请有人向我解释一下吗?
答案 0 :(得分:0)
第一回答: 在您的火店数据中,我看不到密钥&#34; USA&#34;的数据。和#34;跳过&#34;。您确定这些数据是否正确?
回答第二个问题。 我建议你用你想要的字段创建数据类。然后,您可以使用代码将文档数据映射到您的班级:
val dataList = mutableListOf<DataClass>()
querySnapshot.documents.mapTo(dataList) { it.toObject(DataClass::class.java)}
或者,如果QuerySnapshot中有多个文档:
querySnapshot.documents.mapTo(firstKitList) { it.toObject(DataClass::class.java)}
根据您的代码,您可以这样做:
class City(var cityId: String,
var state: String,
var name: String,
var country: String) {
//remember to add empty constructor.
constructor() : this("", "", "", "")
}
@ EDIT1 这是你的数据模型:
FirebaseFirestore.getInstance().collection("collectionName")
.document("documentId, for example LA").set(city)
点击此项目的列表时,创建包含所有这些数据的Intent,然后开始新的活动。
@ EDIT2 如果要添加具有特定ID的文档:
{{1}}
如果您想将id传递给之前的活动,请了解有关startActivityForResult方法的内容:)