我是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中提取每个名字。
答案 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")
检索所有用户并应用迭代器来获取所有用户的名称。