android - 我如何从 firebase 实时数据库中获取所有数据

我有一个具有此架构的数据库:

我测试了这段代码,但我无法从数据库中获取任何消息。非常感谢您的帮助。

 private void Add_Chat(final DataSnapshot dataSnapshot) {
        root.child("ChatSpace").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                String nom=dataSnapshot.child("ChatSpace").child("msg").getValue(String.class);
                System.out.println(nom);  //prints "Do you have data? You'll love Firebase."
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }

最佳答案

假设 ChatSpace 是您的 Firebase 数据库根目录的直接子目录,要获取所有消息,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference chatSpaceRef = rootRef.child("ChatSpace");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String msg = ds.child("msg").getValue(String.class);
            Log.d("TAG", msg);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
chatSpaceRef.addListenerForSingleValueEvent(eventListener);

您的输出将是:

bbbName
bbbName
Name

https://stackoverflow.com/questions/48081185/

相关文章:

docker - 如何解决 "docker: Error response from daemon:

python - django-crontab 不执行预定作业

java - Spring AMQP - channel 交易与发布者确认

amazon-web-services - API 网关 - 请求过多异常 (429)

javascript - 尝试在 javascript 中捕获未定义的检查

android - 有时使用 AlarmManager 不会触发警报

encryption - 如何在 CefPython 中添加 MP4(专有编解码器)支持

javascript - 未知提供者 : $cookies angularjs

php - Discord API 错误 #40001 未经授权

macos - 如何在 Mac 终端中使用 SoX 从文本文件中修剪特定时间的音频文件?