Firestore mutilple帐户登录

时间:2018-05-02 12:51:31

标签: android firebase firebase-authentication google-cloud-firestore

大家好,希望你帮助我,我的问题如下:
- 我有两种类型的帐户一个用于客户,另一个用于药剂师 - 客户在火药店有一个与药剂师相同的收藏品 - 我想将客户端重定向到他的主要活动,并将药剂师重定向到他的主要活动,因为这些活动与我为客户和其他药剂师创建的活动不同。
问题是如何在登录后将其重定向到自己的活动中 [药剂师火炉] [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 :(得分:1)

您收到NullPointerException,因为type对象的值为null。您确定user_id是否正确?

另外,根据您的评论,您的代码中还有另一个错误。对于字符串,您应该使用equals()方法来比较它们而不是==,它用于比较基元而不是String对象。因此,您需要更改以下代码行:

if (type == "Client") {}

if (type.equals("Client") {}