使用Android Studio的Fire Base中的身份验证问题

时间:2020-04-03 19:34:38

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

我正在一个需要Firebase实用程序的项目中,所以我完成了所有必需的操作,但是我的身份验证没有进行,因此我的数据没有上传到Firestore中。我尝试了很多事情,发现执行期间我的onComplete侦听器正在调用失败,因此吐司弹出了身份验证失败,因此我认为主要问题在于onComplete侦听器,但是我无法解决它。我的代码如下-

*

private TextView username;
private TextView password;
private AutoCompleteTextView email;
private ProgressBar progress_bar;
private FirebaseAuth firebaseAuth;
private FirebaseAuth.AuthStateListener authStateListener;
private FirebaseUser currentUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    username = findViewById(R.id.username_account);
    password = findViewById(R.id.password_account);
    email = findViewById(R.id.email_account);
    Button create_account = findViewById(R.id.create_acct_button);
    progress_bar = findViewById(R.id.create_acct_progress);
    firebaseAuth = FirebaseAuth.getInstance();
    create_account.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!TextUtils.isEmpty(email.getText().toString())
                    && !TextUtils.isEmpty(password.getText().toString())
                    && !TextUtils.isEmpty(username.getText().toString())) {
                                    String Email = email.getText().toString().trim();
                String Password = password.getText().toString().trim();
                String Username = username.getText().toString().trim();
                createUserEmailAccount(Email, Password, Username);
            } else {
                Toast.makeText(CreateAccountActivity.this,
                        "Empty Fields Not Allowed",
                        Toast.LENGTH_LONG)
                        .show();
            }
        }
    });
}
private void createUserEmailAccount(String email, String password,  final String username) {
    if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password) && !TextUtils.isEmpty(username)) {
        progress_bar.setVisibility((View.VISIBLE));

        firebaseAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener( CreateAccountActivity.this,new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete( @NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {

                              Map<String, Object> userobj = new HashMap<>();
                              userobj.put("userId", "currentuserId");
                              userobj.put("username", username);
                               db.collection("journal")
                                   .add(userobj)
                                    .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                                     @Override
                                     public void onSuccess(DocumentReference documentReference) {

                                      Log.d(TAG, "DocumentSnapshot successfully written!");
                                       progress_bar.setVisibility(View.INVISIBLE);
                                        }
                                      }).addOnFailureListener(new OnFailureListener() {
                                        @Override
                                     public void onFailure(@NonNull Exception e) {
                                   Log.w(TAG, "Error writing document", e);
                    }
                });
            } else {
                            Log.w(TAG, "createUserWithEmail:failure", task.getException());
                            Toast.makeText(CreateAccountActivity.this, "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                            progress_bar.setVisibility(View.INVISIBLE);
            }
            }
             });
            }

             }
         }*

0 个答案:

没有答案