android – 从Firebase数据库中检索特定数据

我正在使用Firebase数据库JavaAndroid上创建一个聊天应用程序.无论何时用户首次注册,它都会在节点user / UserID / profile / username下将其用户名存储到数据库中.用户名使用User类存储.这是存储用户名值的位置.但是,当我尝试类似的东西

mDatabase.child("users").child(UserID).child("profile").child("username").toString();

这给了我用户名的路径,但没有用户名本身.有谁知道如何获取用户名本身的价值?

编辑:我跑的时候给了我一个错误

DataSnapshot.child("users").child(mUserID).child("profile").child("username").getValue().toString();

以下是我的Firebase数据库在UserID下显示内容.

解决方法:

你没有得到正确的价值.您需要将监听器附加到您的孩子并获取更新.你这样做:

// Get a reference to your user
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("server/path/to/profile");

// Attach a listener to read the data at your profile reference
ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Profile profile = dataSnapshot.getValue(Profile.class);
        System.out.println(profile.getUsername());
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read Failed: " + databaseError.getCode());
    }
});

您可以在Firebase website上找到更多信息和示例.请注意,您没有请求从Firebase获取数据.您将侦听器附加到子项,然后从侦听器获取数据.此示例假定您具有Profile模型,并具有获取用户名方法.这将返回您的Profile对象,并使您能够从该对象获取所需的任何数据.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...