【发布时间】:2021-02-20 15:33:58
【问题描述】:
在尝试从 firebase 实时数据库中删除唯一节点时,该节点正在删除,但再次创建了相同的节点。在这里,我正在检查节点,如果节点可用,则删除该字段
使用节点reference.removeValue()
val query: Query = firebaseDatabase.reference.child("members").orderByChild("resetKey")
.equalTo(uniqueKey)
query.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists()) {
Log.d("snapshot", snapshot.value.toString())
for (childSnap in snapshot.children) {
val key= childSnap.child("resetKey").value.toString()
if (key.isNotEmpty() && key == uniqueKey) {
firebaseDatabase.reference.child("members")
.child(childSnap.ref.key.toString())
.child("password")
.setValue(password)
var eMail = childSnap.child("email").value.toString()
firebaseDatabase.reference.child("members")
.child(childSnap.key!!)
.child("resetKey").removeValue()
}else{
mCheckUniqueKeyResponse.value = 2
}
}
}
}
override fun onCancelled(error: DatabaseError) {
Log.d("error", error.message.toString())
}
})
接受任何建议。
【问题讨论】:
-
这通常发生在您的安全规则拒绝写入/删除操作时。但是没有看到minimal code and rules with which anyone can reproduce the problem就很难说更多了。
-
请编辑您的问题并添加您正在使用的代码。
标签: android kotlin firebase-realtime-database