如何在Android(Firebase)中列出注册用户名?

时间:2017-07-13 13:26:47

标签: android firebase firebase-realtime-database

我是Android的新手,刚刚学会了创建像facebook或Instagram这样的用户个人资料,目前我已经用电子邮件/密码注册了四个用户,并且在数据库中存储了电子邮件,姓名,电话。在另一个活动中,我试图仅获取注册用户的名称,例如"您可能认识的人和#34;在Facebook,但它什么也没显示。

private void showData(DataSnapshot dataSnapshot) {

    for (DataSnapshot ds: dataSnapshot.getChildren()) {

        UserInformation userInformation = new UserInformation();

        userInformation.setName(ds.child("users").child("name").getValue(UserInformation.class).getName());

        ArrayList<String> array = new ArrayList<>();

        array.add(userInformation.getName());

        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, array);

        mListView.setAdapter(adapter);

    }

这是获取它的正确方法,因为我得到NullPointerException,UserInformation是包含getter和setter的模型类。

fire-18b42
           users
                KWE45gijkfJDK6782IBkjas(UID)
                    email: "@example.com"
                    name: "Example"
                    phone_num: 10000000

这是我在用户注册后将数据存储到数据库的方式, 现在这样我有四个用户,我想在单独的listView中提取每个名字。

2 个答案:

答案 0 :(得分:3)

要显示这些名称,请使用以下代码:

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

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

在这种情况下,输出将是您的所有用户名。

答案 1 :(得分:0)

Firebase是NoSql。您需要从myRef.child("users")检索所有用户并应用迭代器来获取所有用户的名称。