在创建新用户之前检查用户是否存在于数据库中

Check if user exists in database before creating a new one

我正在使用 firebase 和 angularfire 创建用户列表。 数据库结构是这样的:

我需要在创建新用户名之前搜索用户名是否存在。 问题是我使用的是自动生成的 ID,而不是创建我自己的 ID。

如何搜索特定昵称是否存在?谢谢!

如果我遇到这种情况,我会检查每一个昵称。

下面是一个简单的例子。

其实你应该把所有的昵称都放在数组中,最后检查一下。

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference def_nickname= myRef.child("user");
String input_nickname = "mickey";


ValueEventListener listener_nickname = new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
          for (DataSnapshot p : dataSnapshot.getChildren()) {
                 String nickname = p.child("nickname").getValue(String.class);
                 if (input_nickname.equals(nickname)) {
                      [do something]} else { [do something]}
          }

     @Override
     public void onCancelled(DatabaseError databaseError) {

     };
def_nickname.addListenerForSingleValueEvent(listener_nickname);

如果您确定要创建自己的 'ID',您可以这样做:

userReference.child("otherschilds").child("nickname").setValue("mickey");

但这不是一个好习惯。