我想在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) {

            }
        });


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



提前致谢!

最佳答案

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

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

您可能需要已经拥有“ -Kbvm .....”键,并使用该键正确地遵循“ satoshi”的路径,否则就需要在“ claim”节点上使用ChildEventListener来获得“ claim”的子代。而不是“要求”本身。

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

10-11 14:40