【问题标题】:how to create username , address and details with firebase authentication如何使用 Firebase 身份验证创建用户名、地址和详细信息
【发布时间】:2017-07-12 10:51:37
【问题描述】:

我知道如何使用 firebase 创建电子邮件和密码身份验证,但这只会创建电子邮件和 ID,但我如何向该 ID 添加名称和更多详细信息,例如如何调用 user.getdisplayname?

这是我创建身份验证电子邮件和密码的代码

bv.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
                final ProgressDialog pros=ProgressDialog.show(Register.this,"please wait..","registerring..",true);
        mAuth.createUserWithEmailAndPassword(email.getText().toString(),password.getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                pros.dismiss();
                if(task.isSuccessful()){
                    Toast.makeText(Register.this,"sucsseful",Toast.LENGTH_LONG).show();
                    Intent i=new Intent(Register.this,login.class);
                }else {
                    Log.e("ERROr",task.getException().toString());
                    Toast.makeText(Register.this,task.getException().getMessage(),Toast.LENGTH_LONG).show();
                }
            }
        });

如果你说也要创建数据库,那么我如何将它链接到用户身份验证?

private FirebaseUser UserDetaill = FirebaseAuth.getInstance().getCurrentUser() ;

【问题讨论】:

    标签: java android firebase firebase-authentication


    【解决方案1】:

    你可以像这样使用UserProfileChangeRequest

    UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                    .setDisplayName("XXX YYYY")
                    .setPhotoUri(URI)
                    .build();
    UserDetaill.updateProfile(profileUpdates);
    

    使用任务

     FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, password)
                .continueWithTask(new Continuation<AuthResult, Task<? extends Object>>() {
                    @Override
                    public Task<? extends Object> then(@NonNull Task<AuthResult> task) throws Exception {
                        UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                .setDisplayName("XXX YYYY")
                                .setPhotoUri(URI)
                                .build();
                        return task.getResult().getUser().updateProfile(profileUpdates);
                    }
                });
    

    【讨论】:

    • 好人谢谢你,是否可以同时创建用户身份验证和名称,如果我使用 setDisplayName("XXX YYYY") 只会更改登录用户?谢谢
    • 我认为你不能创建用户然后更新它,它会直接改变用户的数据
    • 谢谢你,我想我把所有东西都放在了一个按钮里,它应该可以在 1 次点击中工作我正在测试它,谢谢你会确认
    • 好吧,我使用任务更新我的答案,这样您就可以创建一个用户并直接更新它
    • 感谢您在没有最后一行的情况下完美运行 return task.getResult().getUser().updateProfile(profileUpdates);
    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 2011-05-23
    • 2012-09-15
    • 2011-05-30
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多