首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从HashMap中删除值(没有要序列化的属性)?

如何从HashMap中删除值(没有要序列化的属性)?
EN

Stack Overflow用户
提问于 2021-01-25 08:16:09
回答 2查看 242关注 0票数 1

我有一个数据库的结构:

代码语言:javascript
复制
-requests
    -userID
        -requests
            -requestingUserID1 : groupID1
            -requestingUserID2 : groupID2

如何通过HashMap的键删除特定请求?假设我有一些requestingUserID,我想删除它。到目前为止我有:

代码语言:javascript
复制
val updates = HashMap<String, Any>()
// updates["/requests/${firebaseUser.uid}/friendId"] = FieldValue.delete() // verion 1
updates["/requests/${firebaseUser.uid}/requests.${friendId}}"] = FieldValue.delete() //version 2
// more updates

db
    .updateChildren(updates) // error occurs here
    // onCompleteListener()

我得到以下错误:

代码语言:javascript
复制
com.google.firebase.database.DatabaseException: No properties to serialize found on class com.google.firebase.firestore.FieldValue$DeleteFieldValue
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-25 08:57:55

从Firebase实时数据库中删除记录的最简单解决方案是使用"removeValue()“方法,如下代码行所示:

代码语言:javascript
复制
val rootRef = FirebaseDatabase.getInstance().getReference()
val friendIdRef = rootRef.child("requests/${firebaseUser.uid}/requests/${friendId}")
friendIdRef.removeValue().addOnCompleteListener(object : OnCompleteListener<Void?>() {
    fun onComplete(task: Task<Void?>) {
        if (task.isSuccessful()) {
            Log.d(TAG, "Item successfully deleted.")
        }
    }
})

您正在使用的delete()方法是Firestore的一部分。虽然这两个数据库都是Firebase的一部分,但它们都是两种不同的产品,具有两种不同的机制。

票数 1
EN

Stack Overflow用户

发布于 2021-01-25 09:21:11

使用Iterator.hasNext()方法在HashMap上迭代。在迭代运行时,检查该迭代中的值是否等于指定的值。通过entry.getValue()方法可以获得映射的入口值。如果该值匹配,则使用remove()方法从HashMap中删除该迭代的条目。已成功地删除了所需的条目。

我在下面提到了一个语法:

代码语言:javascript
复制
Iterator> 
    iterator = map.entrySet().iterator();

while (iterator.hasNext()) {
    Map.Entry entry = iterator.next();
    if (valueToBeRemoved.equals(entry.getValue())) {
        iterator.remove();
    }
}

remove()方法语法是:

hashmap.remove(对象键,对象值);

在这里,hashmap是HashMap类的一个对象。Remove方法接受两种类型的参数:

specified.

  • Value :仅当指定的键映射到指定的值时,:移除映射。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65881089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档