Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法使用Android Studio Java将用户添加到Firebase Authetnication_Java_Android_Firebase_Firebase Authentication - Fatal编程技术网

我无法使用Android Studio Java将用户添加到Firebase Authetnication

我无法使用Android Studio Java将用户添加到Firebase Authetnication,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,我看了一些Youtube教程,在这里读了一些帖子,并试图掌握Firebase页面上的文档,但它似乎完全不适合我。我只是尝试添加手动编写的(源代码)用户来测试它,但这不起作用。尝试在两种“if”条件下编写“toast”消息,但似乎没有一个toast弹出。我可以通过他们的页面将用户手动添加到firebase,当我这样做并尝试添加同一个用户时,我想我有一次得到了“用户创建的”toast,但当我再次尝试时,我什么也没有得到,所以我甚至不知道 编辑:如果我错调了,很抱歉,但我没有尝试添加到数据库,我想添加

我看了一些Youtube教程,在这里读了一些帖子,并试图掌握Firebase页面上的文档,但它似乎完全不适合我。我只是尝试添加手动编写的(源代码)用户来测试它,但这不起作用。尝试在两种“if”条件下编写“toast”消息,但似乎没有一个toast弹出。我可以通过他们的页面将用户手动添加到firebase,当我这样做并尝试添加同一个用户时,我想我有一次得到了“用户创建的”toast,但当我再次尝试时,我什么也没有得到,所以我甚至不知道

编辑:如果我错调了,很抱歉,但我没有尝试添加到数据库,我想添加到身份验证,因为我得到了包含数据库的部分,但身份验证不起作用

Edit2:要么是缓存/AVD的问题,要么我不知道,但在允许使用internet(在清单上)之后,它似乎起了作用。我不知道这是否有帮助,但我标记了答案,在该答案下,添加该内容的注释是一种解决方案

我的代码是:

public class MainActivity extends AppCompatActivity
{
    FirebaseAuth mAuth;
    FirebaseDatabase database;
    DatabaseReference myRef;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);;
        mAuth = FirebaseAuth.getInstance();
        database = FirebaseDatabase.getInstance();
        Button buttonLogin;
        buttonLogin = findViewById(R.id.loginLoginButton);
        buttonLogin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                mAuth.createUserWithEmailAndPassword("example@example.com", "exempliore852").addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
                {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task)
                    {
                        if (task.isSuccessful())
                        {
                            Toast.makeText(MainActivity.this, "User created", Toast.LENGTH_LONG).show();
                        }
                        else
                        {
                            Toast.makeText(MainActivity.this, "Not successful!", Toast.LENGTH_LONG).show();
                        }
                    }
                });

            }
        });
  }
错误的完整日志猫(因为详细日志猫对于pastebin来说太大):

我做错了什么


编辑:很抱歉,如果我错调了,但我没有尝试添加到数据库,我想添加到身份验证,因为我已经包含了包含数据库的部分,但身份验证不起作用。

您的代码根本没有向实时数据库添加任何内容。它只是创建一个具有Firebase身份验证的用户帐户,这是一个不同的产品。您可以在Firebase控制台的“身份验证”产品区域中看到用户帐户


如果要将用户数据添加到数据库中,您需要自己编写。

如果您试图使用电子邮件和密码创建用户并将用户存储在Firebase数据库中,则必须编写将用户存储在数据库中的方法。看一看

 mAuth.createUserWithEmailAndPassword(edtEmail.getText().toString(), edtPassword.getText().toString())
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {

                            Toast.makeText(SignUpActivity.this, "Signing up successful.",
                                    Toast.LENGTH_SHORT).show();

                            // method to get username stored in database
                            FirebaseDatabase.getInstance().getReference()
                                    .child("users").child(task.getResult().getUser().getUid())
                                    .child("username")
                                    .setValue(edtUsername.getText().toString());

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(edtUsername.getText().toString())
                                    .build();

                            FirebaseAuth.getInstance().getCurrentUser().updateProfile(profileUpdates)
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {

                                            if (task.isSuccessful()) {

                                                Toast.makeText(SignUpActivity.this, "User " +
                                                        edtUsername.getText().toString() + " updated",
                                                        Toast.LENGTH_SHORT).show();
                                            }
                                        }
                                    });

                            transitionToMainActivity();
                        } else {

                            Toast.makeText(SignUpActivity.this, "Signing up failed.",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
mAuth.createUserWithEmailAndPassword(edtEmail.getText().toString(),edtPassword.getText().toString())
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SignUpActivity.this,“注册成功”,
吐司。长度(短)。show();
//方法获取存储在数据库中的用户名
FirebaseDatabase.getInstance().getReference()
.child(“用户”).child(task.getResult().getUser().getUid())
.child(“用户名”)
.setValue(edtUsername.getText().toString());
UserProfileChangeRequest profileUpdates=新建UserProfileChangeRequest.Builder()
.setDisplayName(edtUsername.getText().toString())
.build();
FirebaseAuth.getInstance().getCurrentUser().updateProfile(档案更新)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SignUpActivity.this,“用户”+
edtUsername.getText().toString()+“已更新”,
吐司。长度(短)。show();
}
}
});
TransitionMainActivity();
}否则{
Toast.makeText(SignUpActivity.this,“注册失败”,
吐司。长度(短)。show();
}
}
});

不,就是这样,它没有为身份验证添加任何内容。这就是我要做的,因为我已经完成了数据库的工作,它工作得很好,但是身份验证部分不起作用。或者我必须先让数据库中有“电子邮件”和“密码”详细信息的用户将其添加到身份验证中吗?不,createUserWithEmailAndPassword应该添加一个新帐户(如果它不存在)。这就是我的想法。我也向firebase身份验证添加了依赖项,如果出现问题,至少如果toast显示“不”,对吗?我可能会尝试创建一个新项目,只是为了测试添加用户的功能,可能还有其他问题。我会检查一下,但只是想澄清一下:我想将用户添加到身份验证页面(以便您可以登录),但不想添加到实时数据库。对不起,如果我以前说错了。问题是,它没有向身份验证添加任何内容,也没有显示任何“Toast”消息。试试这个,我很确定它会起作用。。。如果不想将用户添加到数据库中,只需删除获取存储在数据库中的用户名的方法。如果您拥有internet权限,还可以签入AndroidManifest.xml类,这真的很奇怪。我还没有试过你的代码,但一开始是在清单中添加internet权限,似乎仍然不起作用,所以我只是试着注释掉一段代码,只是为了离开身份验证部分。似乎仍然不起作用,但这需要一些时间,用户开始被创建。取消注释代码的另一部分,它也可以正常工作,所以。。。也许互联网许可才是真正的问题。奇怪的是,我没有在教程或文档中看到它;也许我忽略了。不管怎样,非常感谢!
 mAuth.createUserWithEmailAndPassword(edtEmail.getText().toString(), edtPassword.getText().toString())
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {

                            Toast.makeText(SignUpActivity.this, "Signing up successful.",
                                    Toast.LENGTH_SHORT).show();

                            // method to get username stored in database
                            FirebaseDatabase.getInstance().getReference()
                                    .child("users").child(task.getResult().getUser().getUid())
                                    .child("username")
                                    .setValue(edtUsername.getText().toString());

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(edtUsername.getText().toString())
                                    .build();

                            FirebaseAuth.getInstance().getCurrentUser().updateProfile(profileUpdates)
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {

                                            if (task.isSuccessful()) {

                                                Toast.makeText(SignUpActivity.this, "User " +
                                                        edtUsername.getText().toString() + " updated",
                                                        Toast.LENGTH_SHORT).show();
                                            }
                                        }
                                    });

                            transitionToMainActivity();
                        } else {

                            Toast.makeText(SignUpActivity.this, "Signing up failed.",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });