如何从 Firebase 实时数据库中检索值?

Posted

技术标签:

【中文标题】如何从 Firebase 实时数据库中检索值?【英文标题】:How can I retrieve the value from Firebase Realtime database? 【发布时间】:2022-01-08 04:53:23 【问题描述】:

我有这个结构,我想从该身份验证 ID 中检索所有值,如何一次性从(用户/驱动程序)获取所有这些详细信息?

【问题讨论】:

您尝试过什么了吗?如果没有,我建议从 Firebase documentation 和这个 codelab 开始,供 android 开发人员使用。如果您已经尝试过,请编辑您的问题以包含minimal, complete/standalone code that reproduces where you are stuck。 【参考方案1】:

与我之前的回答相同:Error when i try to update data from firebase

我建议添加额外的 child 让名称为 id 例如,此子项的值将与 firebase 推送 id 的值相同。

让我们开始编辑吧:

为适配器传递一个字符串 textId 变量,这样当您从菜单中单击编辑时,它会将 textId 值设置为来自 firebase 的推送 id,这将是具有您需要编辑的数据的子项。

现在使用child(textId).updateChildren(//Your hashmap);

它会起作用的。

我的用法示例:

String textId= productRef.child(UID).child("images").push().getKey();


HashMap<String ,Object> hashMap = new HashMap<>();
        hashMap.put("image", url);
        hashMap.put("id", textId);

 productRef.child(UID).child("images").child(textId).updateChildren(hashMap);

【讨论】:

【参考方案2】:
 FirebaseDatabase.getInstance().getReference().child("Users").child("Drivers").addValueEventListener(new ValueEventListener() 
                @Override
                public void onDataChange(@NonNull DataSnapshot snapshot) 
                    for(DataSnapshot snapshot1:snapshot.getChildren())
                        MyModel myModel=snapshot1.getValue(MyModel.class);
                        list.add(myModel);
                        AdapterSecond  second = new AdapterSecond(list,MainActivity.this);
                        r1.setAdapter(second);
                        r1.setLayoutManager(new LinearLayoutManager(MainActivity.this));
                    
                

                @Override
                public void onCancelled(@NonNull DatabaseError error) 

                
            );

我刚刚通过上面的代码解决了我的错误,我希望它可以帮助别人:)

【讨论】:

使用此解决方案,很可能您最终会在适配器中拥有一个项目,因为您在循环的每次迭代中都创建了 AdapterSecond 类的新实例,对吧? 不,它工作得很好,firebase 实时中的所有细节都显示在我的回收站视图中

以上是关于如何从 Firebase 实时数据库中检索值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 实时数据库中检索/获取项目

从firebase实时数据库IOS Swift中检索数据

无法从从 Firebase 实时数据库中检索数据以在以下代码行中使用它的方法中获取返回值 [重复]

如何使用颤振从firebase实时检索数据

我如何从颤动的firebase实时数据库中检索数据

Firebase 实时数据库:如何在按值排序后围绕特定键检索 10 条记录?