同步获取数据库中的所有用户名

时间:2017-06-07 19:49:55

标签: android firebase firebase-realtime-database

所以我在数据库中有这样的根:

users {
    "user1" {
          username: "username1",
          email: "email@email.com"
     }
    "user2" {
          ...
     }
     ...
}

现在,我想注册一个新用户,因此我需要检查是否已经选择了新用户选择的用户名。 为此我创建了一个单一时间事件并收集字符串列表中的所有用户名:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users");
    ref.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<String> res = new ArrayList<String>();

            Iterable<DataSnapshot> users = dataSnapshot.getChildren();
            for (DataSnapshot user : users) {
                res.add(user.child("username").getValue(String.class));
            }
            // No way to return anything
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            //handle databaseError
        }
    });

但是我有一个问题,那个方法是异步。我需要收集所有用户名,并知道该列表中是否存在同步

有没有办法实现这个目标?

0 个答案:

没有答案