Android- Firebase中的两种用户



我正在开发使用Firebase的简单Android应用程序。我想将用户保存在实时数据库中,而无需使用电子邮件和密码使用身份验证。我只是想要他们的名字和他们的角色(例如,老师和学生)由Radiobuttons挑选。稍后,我想在列表中显示所有用户,但是我想知道如何设置数据库以及如何根据其角色显示正确的活动

应该是:

User
 "something"
   username: "name"
   role: "Teacher"

User
  "KA2aslkdajsdlsad"
    username: "name"
    role: "teacher"

绝对需要使用第二个选项。您需要为所有这些用户使用唯一的标识符。为了获得一个新的唯一密钥(基于时间),我使用push()方法推荐您。它也完全在客户端上生成,而无需咨询服务器。

另一方面,我建议您使用firebase匿名身份验证。

希望它有帮助。

首先,根据您的用户Infos制作POJO Java对象。

public class User{
        String username;
        int roleId; // 1 for student, 2 for teacher
        public User(String username, int roleId){
            this.username = username;
            this.roleId = roleId;
        }
    }

现在将用户存储在实时数据库中,例如:

FirebaseDatabase.getInstance()
            .getReference()
            .child("users")
            .push()
            .setValue(new User("John", 1));

如果您需要获取所有用户,则可以以这种方式进行:

final List<User> userList = new ArrayList<>();
FirebaseDatabase.getInstance()
            .getReference()
            .child("users")
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                        User user = snapshot.getValue(User.class); // this is your user
                        userList.add(user); // add to list
                    }
                    // Now may be display all user in listview
                }
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });

最新更新