Firestore несколько учетных записей входа - PullRequest
0 голосов
/ 02 мая 2018

Моя проблема заключается в следующем:
-У меня есть два типа счетов: один для клиента, другой для фармацевта
- у клиентов в аптеке есть такая же коллекция для фармацевтов.
-Я хочу перенаправить клиента к его основной деятельности, а фармацевта - к его основной деятельности, потому что эти действия не совпадают. Я создал деятельность для клиентов и другую для фармацевтов.
проблема в том, как я мог перенаправить их на их собственную деятельность после того, как они вошли в систему
[Магазин фармацевтов] [1]: https://i.stack.imgur.com/nSyXB.png

[Клиентский магазин] [1]: https://i.stack.imgur.com/rF7Zl.png
Вот мой код для входа в систему:

mSignin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String email=mEmail.getText().toString();
            String password=mPassword.getText().toString();
            if(TextUtils.isEmpty(email) || TextUtils.isEmpty(password)){
                Toast.makeText(LoginActivity.this, "SVP remplissez tous les 
champs", Toast.LENGTH_SHORT).show();
            }
            if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)){
                mProgressbarlog.setVisibility(View.VISIBLE);

mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {

                            if(task.isSuccessful()){
                                   String user_id = FirebaseAuth.getInstance().getUid();
                                   mFirestore.collection("Clients").document(user_id).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                                       @Override
                                       public void onSuccess(DocumentSnapshot documentSnapshot) {
                                           String type = documentSnapshot.getString("Type");
                                           if (type == "Client") {
                                               sendToMain();
                                               mProgressbarlog.setVisibility(View.INVISIBLE);
                                           } else  {
                                               sendTOMainPH();
                                               mProgressbarlog.setVisibility(View.INVISIBLE);
                                           }
                                       }
                                   });

                            }
                            else {
                                Toast.makeText(LoginActivity.this, "Erreur: 
"+task.getException().getMessage(), Toast.LENGTH_SHORT).show();

mProgressbarlog.setVisibility(View.INVISIBLE);
                            }
                        }
                    }    );
                }


            }

        }
    );
}

1 Ответ

0 голосов
/ 02 мая 2018

Вы получаете NullPointerException, потому что объект type имеет значение null. Вы уверены, что user_id правильно?

Также, согласно вашему комментарию, в вашем коде есть еще одна ошибка. Для строк вы должны использовать метод equals() для сравнения, а не ==, который используется для сравнения примитивов, а не объектов String. Поэтому вам нужно изменить следующую строку кода:

if (type == "Client") {}

до

if (type.equals("Client") {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...