在auth之后将用户添加到firebase数据库

时间:2017-09-07 17:55:40

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

我正在寻找以下方法: 每当用户首次注册或登录时,都应使用用户的email-id在DB中创建记录。

有人可以给我指示,我已经尝试了很少的选择,但没有一个是正确的。

2 个答案:

答案 0 :(得分:0)

这样做,

从您的问题中我得出结论,您没有单独的表单来添加新用户。 在这种情况下, 当用户点击登录按钮时 如果记录存在,您可以从数据库中检查。 例如。查询一个简单的sql语句 select * from users where email-id =“输入值”

如果存在则打开主应用程序 否则,如果它不存在,则插入包含输入值的行,然后打开应用程序。

答案 1 :(得分:0)

enter image description here 注册用户并向数据库添加信息

FirebaseAuth auth = FirebaseAuth.getInstance();
    DataBaseRefrence ref = FirebaseData.getInstance().getReference();
        auth.createUserWithEmailAndPassword(email,pass)addOnCompleteListener(context, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {

    if(task.isSuccessful())
                        {
    FirebaseUser fUser = mAuth.getCurrentUser();
    User user = new User(name,email);
    ref.child("Users").child(fuser.getUid).setValue(user);
}

用户类

public class User
{
public String Name;
public String Email;

// need empty constractor

public User()
{}

public User(String name,String email)
{
Name = name;
email = email;
}

public String getName()
{
return Name;
}

public String getEmail()
{
return Email;
}

获取价值

DataBaseRefrence ref = FirebaseData.getInstance().getReference();
FirebaseUser fUser = auth.getCurrentUser();
ref.child("Users").child(fUser.getUid).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);
                if(user!=null)
                 {
                  // do what ever you want
                 }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

要从firebase获取数据,您必须从孩子到孩子 例如,获取userdata myRefLinkis https://stackoverflow.com

https://stackoverflow.com/Users/UserId现在获取数据