需要为Firebase中的用户注册输入更多数据

时间:2017-01-19 15:23:01

标签: firebase firebase-realtime-database firebase-authentication

我是Firebase的新手。我正在查看Firebase文档,看起来不错。但有一点我注意到,当我注册/注册我的用户时,我只能获得他们的电子邮件ID和密码。

但是,对于我的应用,我需要我的用户输入更多详细信息,如姓名,地址,电话和其他一些细节。我怎么能这样做?

我想也许我可以使用实时数据库,但后来我不知道如何将用户与实时数据库中各自的详细信息进行匹配。请给我一些关于如何做到这一点的想法。

2 个答案:

答案 0 :(得分:3)

你是对的。 为了保存一些用户数据,您必须使用实时数据库。您可以为电子邮件,photoURL,displayName分配给用户的属性很少,但是您必须使用数据库。

希望它有所帮助,这是我正在做的一种方式: 我在数据库中创建了“users”节点,每次新用户注册时,都会插入带有uid的新条目。查看下面的截图:

enter image description here

因此,每当您需要获取用户数据时,只需使用给定的“当前用户uid”在“users”节点上调用child。

答案 1 :(得分:1)

注册成功后,获取所有详细信息并在firebase数据库中更新/创建信息。

 final String emailId = mEditTextEmail.getText().toString() ;
 String password = mEditTextPassword.getText().toString() ;
 firebaseRef.createUser(emailId, password, new Firebase.ValueResultHandler<Map<String,Object>>() {
         @Override
         public void onSuccess(Map<String, Object> stringObjectMap) {

                            User user = new User();
                            user.setUid(stringObjectMap.get("uid").toString());
                            user.setEmail(emailId);
                            user.setProfileStatus(User.NEW);
                            firebaseRef.child("Users").child(user.getUid()).setValue(user);
                            mProgressBar.setVisibility(View.GONE);

                            Intent intent = new Intent(SignupActivity.this,LoginActivity.class);
                            intent.putExtra("email",mEditTextEmail.getText().toString());
                            startActivity(intent);

                            Toast.makeText(getBaseContext(),"You are Successfully Registered in",Toast.LENGTH_SHORT).show();
                            Toast.makeText(getBaseContext(),"Login to continue..",Toast.LENGTH_SHORT).show();

                        }