有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java登录到google firebase

这是我的java代码:

public void saveData(String email,String pass){
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(EMAIL,email);
    editor.putString(PASS,pass);
    editor.putBoolean(REMEMBER,checkBox.isChecked());
    editor.commit();
}
private void loadData() {
    if(sharedPreferences.getBoolean(REMEMBER,false)) {
        edt_tendangnhap.setText(sharedPreferences.getString(EMAIL, ""));
        edt_matkhau.setText(sharedPreferences.getString(PASS, ""));
        checkBox.setChecked(true);
    }
    else
        checkBox.setChecked(false);
}
private void clearData() {
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.clear();
    editor.commit();
}

private void addcontrols(){
edt_tendangnhap = (EditText) findViewById(R.id.edt_tendangnhap);
edt_matkhau = (EditText) findViewById(R.id.edt_matkhau);

btn_dangnhap = (Button)findViewById(R.id.btn_dangnhap);
btn_dangky = (Button) findViewById(R.id.btn_dangky);
getBtn_dangnhapgoole = (Button) findViewById(R.id.btn_dangnhapgoogle);

quenmk = (TextView) findViewById(R.id.quenmk);
checkBox = (CheckBox) findViewById(R.id.checkbox);

}

private void addEvents(){
    btn_dangnhap.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mAuth = FirebaseAuth.getInstance();
            final String email = edt_tendangnhap.getText().toString();
            final String password = edt_matkhau.getText().toString();
            if (checkBox.isChecked()){
                saveData(email,password);
            }
            else {
                clearData();
            }

           if(TextUtils.isEmpty(email)){
              Toast.makeText(MainActivity.this,"Vui lòng điền email",Toast.LENGTH_SHORT).show();
              return;
           }
           if (TextUtils.isEmpty(password)){
              Toast.makeText(MainActivity.this,"Vui lòng nhập mật khẩu",Toast.LENGTH_SHORT).show();
              return;
          }
          mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
              @Override
              public void onComplete(@NonNull Task<AuthResult> task) {
                  if (task.isSuccessful()){
                      FirebaseUser currentUser = mAuth.getCurrentUser();
                      String email=currentUser.getEmail();
                      String uid=currentUser.getUid();

                      FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
                      DatabaseReference reference=firebaseDatabase.getReference("Users");



                      String admin = "admin@gmail.com";

                      boolean sosanh = email.equals(admin);

                      if ( sosanh == true){
                          Toast.makeText(MainActivity.this, "Đăng nhập thành công admin", Toast.LENGTH_SHORT).show();
                          ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                          dialog.setTitle("ĐĂNG NHẬP");
                          dialog.setMessage("Login Admin......");
                          dialog.setCanceledOnTouchOutside(false);
                          dialog.show();
                          Intent intent = new Intent(MainActivity.this, Admin_QuanLy.class);
                          startActivity(intent);
                      }
                      else {
                          Toast.makeText(MainActivity.this, "Đăng nhập thành công", Toast.LENGTH_SHORT).show();
                          ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                          dialog.setTitle("ĐĂNG NHẬP");
                          dialog.setMessage("Vui lòng đợi chúng tôi kiểm tra tài khoản của bạn");
                          dialog.setCanceledOnTouchOutside(false);
                          dialog.show();
                          Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                          startActivity(intent);
                      }

                  }
                      else {
                      Toast.makeText(MainActivity.this,"Đăng nhập thất bại",Toast.LENGTH_SHORT).show();

                  }
              }
          });
        }
    });


     btn_dangky.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final Dialog dialog = new Dialog(MainActivity.this);
            dialog.setTitle("Đăng ký");
            dialog.show();
            dialog.setCancelable(false);
            dialog.setContentView(R.layout.custom_dangky);
            final EditText edt_tk = (EditText) dialog.findViewById(R.id.edt_tk);
            final EditText edt_mk = (EditText) dialog.findViewById(R.id.edt_mk);
            Button btn_dongy = (Button) dialog.findViewById(R.id.btn_dongy);
            Button btn_huy = (Button) dialog.findViewById(R.id.btn_huy);
            btn_dongy.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mAuth = FirebaseAuth.getInstance();
                    final String email = edt_tk.getText().toString();
                    final String password = edt_mk.getText().toString();

                    if(TextUtils.isEmpty(email)){
                        Toast.makeText(MainActivity.this,"Vui lòng điền email",Toast.LENGTH_SHORT).show();
                        return;
                    }
                    if (TextUtils.isEmpty(password)){
                        Toast.makeText(MainActivity.this,"Vui lòng nhập mật khẩu",Toast.LENGTH_SHORT).show();
                        return;
                    }
                    mAuth.createUserWithEmailAndPassword(email ,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()){
                                mAuth= FirebaseAuth.getInstance();
                                FirebaseUser user = mAuth.getCurrentUser();
                                Toast.makeText(getApplicationContext(),"Đăng ký thành công",Toast.LENGTH_SHORT).show();
                                dialog.cancel();
                                edt_tendangnhap.setText(email);
                                edt_matkhau.setText(password);
                            }
                        }


                    });


                }
            });

            btn_huy.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.cancel();
                }
            });
            dialog.show();
        }
    });
  quenmk.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          final Dialog dialog = new Dialog(MainActivity.this);
          dialog.setTitle("Đăng ký");
          dialog.show();
          dialog.setCancelable(false);
          dialog.setContentView(R.layout.custom_quen_mat_khau);
          final EditText edt_email = (EditText) dialog.findViewById(R.id.edt_quenmatkhau);
          Button btn_dongy = (Button) dialog.findViewById(R.id.btn_dongy_quenmk);
          Button btn_trove = (Button) dialog.findViewById(R.id.btn_trove);

          btn_dongy.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  String email = edt_email.getText().toString().trim();

                  if (TextUtils.isEmpty(email)) {
                      Toast.makeText(getApplication(), "Vui lòng nhập email", Toast.LENGTH_SHORT).show();
                      return;
                  }
                 mAuth.getCurrentUser().getEmail();
                  mAuth.sendPasswordResetEmail(email).addOnCompleteListener(new OnCompleteListener<Void>() {
                      @Override
                      public void onComplete(@NonNull Task<Void> task) {
                          if (task.isSuccessful()){
                              Toast.makeText(getApplication(), "Một đường dẫn tạo lại mật khẩu sẽ được gửi về email của bạn", Toast.LENGTH_SHORT).show();
                          }else {
                              Toast.makeText(getApplication(), "Có lỗi...", Toast.LENGTH_SHORT).show();
                          }
                      }
                  });
              }
          });

          btn_trove.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  dialog.cancel();
              }
          });

          dialog.show();
      }
  });

  getBtn_dangnhapgoole.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          DangNhapGoogle(apiClient);
      }
  });

}
private  void TaoClientDangNhapGoogle(){
    GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder()
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();
    apiClient = new GoogleApiClient.Builder(this)
             .enableAutoManage(this,this)
            .addApi(Auth.GOOGLE_SIGN_IN_API,signInOptions).build();
}
private void DangNhapGoogle(GoogleApiClient apiClient){
    KIEMTRA_PROVIDERDANGNHAP = 1;
    Intent iDNgoogle = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    startActivityForResult(iDNgoogle,CODE_DANG_GOOGLE);
}
private void ChungThucDangNhapFireBase(String tokenID){
    if (KIEMTRA_PROVIDERDANGNHAP == 1){
        AuthCredential authCredential = GoogleAuthProvider.getCredential(tokenID,null);
        mAuth.signInWithCredential(authCredential).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                Toast.makeText(MainActivity.this, "Đăng nhập thành công", Toast.LENGTH_SHORT).show();
            }
        });
     }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CODE_DANG_GOOGLE){
            if (resultCode == RESULT_OK){
                if (data!=null){
                    GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
                    GoogleSignInAccount account = signInResult.getSignInAccount();
                    String torkenID = account.getIdToken();
                    ChungThucDangNhapFireBase(torkenID);
                }
             }
        }

}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}

@Override
protected void onStart() {
    super.onStart();
    if (mAuth != null) {
        mAuth.addAuthStateListener(this);
    }
}

@Override
protected void onStop() {
    super.onStop();
    if (mAuth != null){
        mAuth.removeAuthStateListener(this);
    }
}

@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    FirebaseUser user = firebaseAuth.getCurrentUser();
    if (user != null){
                Toast.makeText(MainActivity.this, "Đăng nhập thành công", Toast.LENGTH_SHORT).show();
                ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                dialog.setTitle("ĐĂNG NHẬP");
                dialog.setMessage("Vui lòng đợi chúng tôi kiểm tra tài khoản của bạn");
                dialog.setCanceledOnTouchOutside(false);
                dialog.show();
                Intent intent = new Intent(MainActivity.this,MainActivity.class);
                startActivity(intent);
    }else {
        Toast.makeText(MainActivity.this, "Đăng nhập thất bại", Toast.LENGTH_SHORT).show();
    }
}

我遇到了两个错误: 原因:java。lang.NullPointerException:尝试调用虚拟方法“com”。谷歌。安卓gms。任务。任务com。谷歌。火基。auth。FirebaseAuth。在空对象引用上登录WithCredential(com.google.firebase.auth.AuthCredential)”

无法将结果ResultInfo{who=null,request=3,result=-1,data=Intent{(有附加项)}}传递到活动{com.sict.ordermonan/com.sict.ordermonan.MainActivity}:java。lang.NullPointerException:尝试调用虚拟方法“com”。谷歌。安卓gms。任务。任务com。谷歌。火基。auth。FirebaseAuth。在空对象引用上登录WithCredential(com.google.firebase.auth.AuthCredential)”


共 (0) 个答案