2017-01-19 34 views
2

我是Firebase的新用户。我正在查看Firebase文档,看起来不错。但我注意到的一件事是,当我注册/注册用户时,我只能得到他们的电子邮件ID和密码。需要为用户注册更多数据Firebase

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

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

回答

3

你说得对。 为了保存一些用户数据,您将不得不使用实时数据库。有几个属性可以分配给用户,如电子邮件,photoURL,displayName,但不止于此,您必须使用数据库。

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

enter image description here

所以每次你需要获得用户数据,只需要调用的孩子在“用户”节点与给定的“当前用户UID”时间。

+0

请问你可以添加一个你如何做的例子/片段? –

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(); 

         }