所以我在数据库中有这样的根:
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
}
});
但是我有一个问题,那个方法是异步。我需要收集所有用户名,并知道该列表中是否存在同步。
有没有办法实现这个目标?