Android 只有在Firebase中成功创建用户时,才有方法将文档添加到Firestore吗?

Android 只有在Firebase中成功创建用户时,才有方法将文档添加到Firestore吗?,android,firebase,google-cloud-firestore,firebase-authentication,Android,Firebase,Google Cloud Firestore,Firebase Authentication,基本上,我尝试使用Firebase身份验证创建一个新用户,但我也希望将用户信息作为文档添加到Firestore中,但前提是新用户已成功创建,否则不应访问创建文档的代码 firebaseAuth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Ov

基本上,我尝试使用Firebase身份验证创建一个新用户,但我也希望将用户信息作为文档添加到Firestore中,但前提是新用户已成功创建,否则不应访问创建文档的代码

firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()) {
                        Toast.makeText(SignUpActivity.this, "Registered successfully", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(SignUpActivity.this, "Could not register. Please try again.", Toast.LENGTH_LONG).show();

                        if (Build.VERSION.SDK_INT >= 11) {
                            SignUpActivity.this.recreate();
                        } else {
                            SignUpActivity.this.finish();
                            SignUpActivity.this.startActivity(SignUpActivity.this.getIntent());
                        }
                    }
                }
            });

    Map<String, Object> user = new HashMap<>();
    user.put("email", email);
    user.put("fName", fName);
    user.put("lName", lName);

    if(studentRadioButton.isChecked()) {
        user.put("studentNum", email.substring(1, 9));
    }

    firebaseFirestore.collection("users").document(firebaseAuth.getUid()).set(user);
firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SignUpActivity.this,“注册成功”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(SignUpActivity.this,“无法注册。请重试。”,Toast.LENGTH_LONG.show();
如果(Build.VERSION.SDK_INT>=11){
SignUpActivity.this.recreate();
}否则{
SignUpActivity.this.finish();
SignUpActivity.this.startActivity(SignUpActivity.this.getIntent());
}
}
}
});
Map user=newhashmap();
user.put(“email”,email);
user.put(“fName”,fName);
user.put(“lName”,lName);
if(studentRadioButton.isChecked()){
user.put(“studentNum”,email.substring(1,9));
}
firebaseFirestore.collection(“用户”).document(firebaseAuth.getUid()).set(用户);

我尝试过的方法之一(如下所示)是重新创建当前活动,但它只是返回到它开始的地方,并最终移动到创建文档的代码上。对于我尝试过的所有其他方法,似乎除了Toast弹出窗口之外,我无法在onCompleteListener中的onComplete方法中添加任何内容。请帮忙

正如aryan评论的那样:为了确保只有在Firebase身份验证中创建用户时才能创建文档,请将代码移动到
中,如果

firebaseAuth.createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if(task.isSuccessful()) {
                Toast.makeText(SignUpActivity.this, "Registered successfully", Toast.LENGTH_LONG).show();

                Map<String, Object> user = new HashMap<>();
                user.put("email", email);
                user.put("fName", fName);
                user.put("lName", lName);

                if(studentRadioButton.isChecked()) {
                    user.put("studentNum", email.substring(1, 9));
                }

                firebaseFirestore.collection("users").document(firebaseAuth.getUid()).set(user);

            } else {
                Toast.makeText(SignUpActivity.this, "Could not register. Please try again.", Toast.LENGTH_LONG).show();

                if (Build.VERSION.SDK_INT >= 11) {
                    SignUpActivity.this.recreate();
                } else {
                    SignUpActivity.this.finish();
                    SignUpActivity.this.startActivity(SignUpActivity.this.getIntent());
                }
            }
        }
    });
firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SignUpActivity.this,“注册成功”,Toast.LENGTH_LONG.show();
Map user=newhashmap();
user.put(“email”,email);
user.put(“fName”,fName);
user.put(“lName”,lName);
if(studentRadioButton.isChecked()){
user.put(“studentNum”,email.substring(1,9));
}
firebaseFirestore.collection(“用户”).document(firebaseAuth.getUid()).set(用户);
}否则{
Toast.makeText(SignUpActivity.this,“无法注册。请重试。”,Toast.LENGTH_LONG.show();
如果(Build.VERSION.SDK_INT>=11){
SignUpActivity.this.recreate();
}否则{
SignUpActivity.this.finish();
SignUpActivity.this.startActivity(SignUpActivity.this.getIntent());
}
}
}
});

“仅当新用户成功创建时”,那么为什么不在
IF(task.issusccessful()){