如何从 Firestore 中检索存储为数组的数据并将它们设置为 Kotlin 中的 EditText 值?

科迪斯特

Firestore使用以下代码将一些数据存储为数组现在,我想获取这些值并将它们一一放入EditTexts 中。我怎样才能做到这一点?

    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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Firestore中插入“参考”值?

在EditText Kotlin中设置文本

Android-如何从MainActivity中的RecyclerView检索EditText值

如何在Kotlin中设置属性的值

如何从Firestore集合中获取所有文档并将它们返回到数组列表中?

如何使用列中的每对值并将它们转置为组内的行(groupby)

如何获取n个数组,并将它们设置为更大数组中的各个列

如何在字符串数组中存储edittext值?

如何使用Kotlin在Firestore中创建值列表

如何更新在Firestore中存储为FieldValue的数组中元素的值

在Kotlin的Firestore中获取地图的一个值

如何从EditText获取LiveData值并使用Kotlin在TextView中显示它?MVVM

如何从xml片段中获取EditText值?

如何从EditText中获取值并将其求和为数组

我如何切出包含值的所有数组对象并将它们存储在新数组中

如何从表中检索行并将其值设置为json数组并获取该json数组作为返回值

如何从字符串中检索每个值并将它们添加到列表中

如何在 SharedPreferences 中传递 EditText 值

从关联数组中获取特定的键/值并将它们存储为变量

Kotlin:EditText 在 afterTextChanged() 中为 null

如何将值存储在数组中并将它们保存在文件中

如何从 VBA 中的查询中检索值并将它们分配为 Access 2016 中的变量

如何在flutter中从firestore打印值

如何将 Firestore 中的数据设置为 Flutter 中 TextField 的初始值?

如何更新firestore中的值

如何将 EditText 值添加到 Kotlin 中的 ArrayList?

意圖將 EditText 值轉換為 Kotlin 中的另一個 EditText 值

将字符串解析为整数并将它们存储在 C 中的数组(范围值)中

如何从 firestore 检索数据并将其存储到数组 (Kotlin- Android Studio)