我正在开发使用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) {
}
});