java - Firebase 返回 null 而不是数据

标签 java android firebase firebase-realtime-database

我想检索 Firebase 实时数据库中保存的数据,但结果始终为 null

下面是代码。

    try{
        mDatabase = FirebaseDatabase.getInstance().getReference();
        myBal.setText("0");
        mDatabase.child("users").child(mUserId).child("claim").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String amount  = dataSnapshot.child("satoshi").getValue(String.class);
                myBal.setText("satoshi: "+amount);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

下面是我的数据库结构...

enter image description here

提前致谢!

最佳答案

问题是你实际上并没有到达“satoshi”节点。

“claim”节点上的 ValueEventListener 返回代表“claim”节点的 DataSnapshot。 “claim”节点上没有“satoshi”子节点,唯一的子节点是“-Kbvm.....”。

您需要已经拥有“-Kbvm.....” key 并使用它来正确遵循“satoshi”的路径,或者在“claim”节点上使用 ChildEventListener 来获取“的子节点”声明”而不是“声明”本身。

关于java - Firebase 返回 null 而不是数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41992101/

相关文章:

java - 我应该手动关闭从数据源获得的连接吗?

java - 画箭头不起作用

java - 堆外缓存 DirectMemory 是否已准备好投入生产?活跃吗?

android - ViewPagerIndicator

Android自定义设备相机权限

java - 大 Permgen 大小 + 性能影响

安卓按钮工具提示

reactjs - 使用 React Native 正确处理注销

Firebase 云函数使用当前值而不是最初调用函数时的值

firebase - 登录Firebase/Flutter