我Firestore
使用以下代码将一些数据存储为数组。现在,我想获取这些值并将它们一一放入EditText
s 中。我怎样才能做到这一点?
private fun addZipToFirebase() {
val zipList = createListOfZipCodes()
mFireStore.collection(Constants.USERS)
.document(FirestoreClass().getCurrentUserID())
.update("zip_codes", zipList)
.addOnSuccessListener {
Toast.makeText(
this@AssignZIPCodeActivity,
"Zip Codes updates successfully",
Toast.LENGTH_SHORT
).show()
}
.addOnFailureListener { exception ->
Log.e(
javaClass.simpleName,
exception.message,
exception
)
}
}
编辑:
我正在尝试使用以下代码来获取数据。我想要字段名称 zip_codes(在屏幕截图中)下的每个邮政编码EditText
(etPinCodeOne、etPinCodeTwo、etPinCodeThree 等)。但是通过以下代码,我得到的是 .zip 文件中的所有邮政编码EditText
。非常喜欢,[123456, 789456, 132645,798654, 798654, 799865, 764997, 497646, 946529, 946585]。我想要每个EditText
.
private fun getZipCodesFromFirebase() {
mFireStore.collection(Constants.USERS)
.document(FirestoreClass().getCurrentUserID())
.get()
.addOnSuccessListener { document ->
val list: ArrayList<String> = ArrayList()
list.add(document["zip_codes"].toString())
Toast.makeText(this@AssignZIPCodeActivity,list.toString(),Toast.LENGTH_SHORT).show()
binding.etZipCodeOne.setText(list[0])
}
}
有人可以帮我吗?
为了能够获取zip_codes
数组,您需要在 User 类中包含一个名为 zip_codes 的属性,该属性需要声明为 List 类型:
val zip_codes: List<String>
现在,要相应地获取它,请使用以下代码行:
val uid = FirebaseAuth.getInstance().currentUser!!.uid
val rootRef = FirebaseFirestore.getInstance()
val usersRef = rootRef.collection("users")
val uidRef = usersRef.document(uid)
uidRef.get().addOnCompleteListener { task ->
if (task.isSuccessful) {
val document = task.result
if (document.exists()) {
val zip_codes = document.toObject(User::class.java).zip_codes
//Do what you need to do with your list
} else {
Log.d(TAG, "No such document")
}
} else {
Log.d(TAG, "get failed with ", task.exception)
}
}
由于您获得多个邮政编码,您应该考虑使用 ListView,甚至更好的 RecyclerView,而不是 EditTexts。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句