首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Firebase迭代dataSnapshot.value哈希映射的值

从Firebase迭代dataSnapshot.value哈希映射的值
EN

Stack Overflow用户
提问于 2021-05-17 11:15:33
回答 1查看 290关注 0票数 1

我正在为摩托车创建一个“虚拟车库应用程序”,我无法从我的Firebase检索数据,我只能访问数据库中每辆摩托车的HashMap。这是我的数据库内容:

数据库

下面是我试图检索数据的代码:代码

下面是我尝试放置数据的ExampleItem()对象:ExampleItem

有任何方法来迭代dataSnapshot.value HashMap的值以便为每个字符串调用setter吗?

EN

Stack Overflow用户

回答已采纳

发布于 2021-05-17 11:27:33

有任何方法来迭代dataSnapshot.value HashMap的值以便为每个字符串调用setter吗?

通过访问所需的确切属性,您可以获得更简单的信息。例如,要显示"motoBrand“属性的值,请使用以下代码行:

代码语言:javascript
运行
复制
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mototrackRef = rootRef.child("mototrack");
    mototrackRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DataSnapshot> task) {
        if (task.isSuccessful()) {
            for (DataSnapshot ds : task.getResult().getChildren()) {
                String motoBrand = ds.child("motoBrand").getValue(String.class);
                Log.d("TAG", motoBrand);
            }
        } else {
            Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
        }
    }
});

以完全相同的方式可以获得其他属性的值。在科特林会是这样的:

代码语言:javascript
运行
复制
val rootRef = FirebaseDatabase.getInstance().reference
val mototrackRef = rootRef.child("mototrack")
mototrackRef.get().addOnCompleteListener { task ->
    if (task.isSuccessful) {
        for (ds in task.result.getChildren()) {
            val motoBrand = ds.child("motoBrand").getValue(String::class.java)
            Log.d("TAG", motoBrand)
        }
    } else {
        Log.d("TAG", task.exception.getMessage()) //Don't ignore potential errors!
    }
}
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67568596

复制
相关文章

相似问题

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