Firestore проверяет, если «username существует» игнорирует заглавные буквы - PullRequest
0 голосов
/ 10 ноября 2019

Привет! Я проверяю, существует ли имя пользователя, чтобы можно было создать учетную запись в firestore, однако она позволяет создавать имена пользователей, игнорируя уже существующее имя, содержащее заглавные буквы. Пожалуйста помоги. Заранее спасибо.

имя пользователя может состоять из строчных, прописных, подчеркиваний и / или точек. Как проверить, существует ли имя пользователя независимо от прописных букв?

вот пример:

пример изображения

Вот код, который я использую:

username_ = username.getText().toString();

       firebaseFirestore.collection("Usernames")
                        .document(username_.toLowerCase())
                        .get()
                        .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
     @Override
     public void onSuccess(DocumentSnapshot documentSnapshot) {
     if(!documentSnapshot.exists())
          {
           registerUser();
          }

*** ОБНОВЛЕНИЕ ****

Я нашел решение: я добавил .toLowerCase ()

firebaseFirestore.collection("Usernames")
                    .document(username_.toLowerCase())
                    .get()
                    .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
 @Override
 public void onSuccess(DocumentSnapshot documentSnapshot) {
 if(!documentSnapshot.exists())
      {
       registerUser();
      }

private void registerUser() {

    mAuth.createUserWithEmailAndPassword(email_, pass_).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull final Task<AuthResult> task) {
            if (task.isSuccessful()) {

                Map<String,Object> usernameMap=new HashMap<String, Object>();
                usernameMap.put("username",username_);

                firebaseFirestore.collection("Usernames")
                        .document(username_.toLowerCase())
                        .set(usernameMap)
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {
                                task.getResult()
                                        .getUser()
                                        .sendEmailVerification()
                                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                                            @Override
                                            public void onSuccess(Void aVoid) {

                                                //do your thang

                                            }
                                        })
                                        .addOnFailureListener(new OnFailureListener() {
                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                task.getResult().getUser().delete();
                                            }
                                        });
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {

                                Log.e("Error",e.getMessage());
                            }
                        });
            } 

        }
    });

}

СТАРЫЙ путь

Новый способ

Надеюсь, это поможет другим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...