为什么Firebase Data快照不返回任何值(Android)?

时间:2020-07-04 21:40:59

标签: android firebase firebase-realtime-database

我无法使用给定的文档从我的Firebase安卓数据库中获取任何值。我尝试过连接到最简单的结构,但是仍然没有运气。下面是我的代码。

DatabaseReference usersReference;

@Override
protected void onCreate(Bundle savedInstanceState) {
...
    usersReference = FirebaseDatabase.getInstance().getReference("users");
...
}


protected void onStart() {
    super.onStart();

    System.out.println("User Reference: "+usersReference.toString());
    usersReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String value = dataSnapshot.child("name").getValue(String.class);
            mongo.setText(value);
        }

        @Override
        public void onCancelled(DatabaseError error) {

        }
    });
}

这是我的数据库在Firebase中的样子

enter image description here

由于某种原因,无论我尝试什么,我一无所获。我尝试打印用户引用,以确保要去正确的位置,尽管单击链接时该链接是对数据库的正确引用,但此屏幕仍然存在: enter image description here

不确定是否相关。谢谢

2 个答案:

答案 0 :(得分:1)

在您描述的其余行为中,您的代码似乎在寻找与屏幕快照所示不同的数据库。建议您为项目重新下载google-services.json,然后再次将其添加到项目中。

答案 1 :(得分:0)

发生这种情况时,最好使用调试器来了解发生了什么。您使用的是Android Studio吗?

在以下行上放置一个断点:

String value = dataSnapshot.child("name").getValue(String.class);

然后,当程序执行在此处停止时,单击“评估表达式”按钮。 在该窗口内,您可以尝试使用dataSnapshot。我建议您在那里尝试使用dataSnapshot.getChildren()并查看其显示内容。