【问题标题】:Update target in firebase更新firebase中的目标
【发布时间】:2019-08-20 13:31:59
【问题描述】:

我的recyclerView 上有一个target 当我继续这项任务时,我调用了updateTarget() 方法:

private fun updateTarget(name: String, description: String) {
        val map = mapOf("name" to name, "description" to description)
        databaseReference?.child("targets")?.child("users")
            ?.child(uid.toString())?.child("targets")?.child(targetGuid)?.updateChildren(map)
    }

但是在我将name 更改为description 并单击更新后, 它不会更改现有的target,而是添加一个没有guid 字段的新的。 结果是以下结构:

-LmjBTkVXhmXaqL0b4RG这里是多余的。

【问题讨论】:

    标签: android firebase firebase-realtime-database kotlin


    【解决方案1】:

    要更新name 属性的值,请使用以下代码行:

    val uid = FirebaseAuth.getInstance().currentUser!!.uid
    val rootRef = FirebaseDatabase.getInstance().reference
    val targetsRef = rootRef!!.child("targets").child("users").child(uid).child("targets")
    val query = targetsRef.orderByChild("guid").equalTo("-LmjBTkVXhmXaqL0b4RG")
    val valueEventListener = object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            for (ds in dataSnapshot.children) {
                ds.child("name").getRef().setValue("The New Vadim Morozov")
            }
        }
    
        override fun onCancelled(databaseError: DatabaseError) {
            Log.d(TAG, databaseError.getMessage()) //Don't ignore errors!
        }
    }
    query.addListenerForSingleValueEvent(valueEventListener)
    

    【讨论】:

    • setValue 是未解析的引用。 Mb 我需要转换为Target? Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: @InlineOnly public inline operator fun <V> MutableMap<in String, in TypeVariable(V)>.setValue(thisRef: Any?, property: KProperty<*>, value: TypeVariable(V)): Unit defined in kotlin.collections
    • 哦,对不起,我的错。我刚刚添加了对.getRef() 函数的调用。请查看我的更新答案。
    • 酷,它正在工作,谢谢。我们无法使用以下方法:updateChildren()?
    • 很高兴听到这个消息:) 是的,您可以这样做,但在这种情况下,您只能更新单个元素。在这种情况下,您可以更新多个。很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多