我正在寻找以下方法: 每当用户首次注册或登录时,都应使用用户的email-id在DB中创建记录。
有人可以给我指示,我已经尝试了很少的选择,但没有一个是正确的。
答案 0 :(得分:0)
这样做,
从您的问题中我得出结论,您没有单独的表单来添加新用户。 在这种情况下, 当用户点击登录按钮时 如果记录存在,您可以从数据库中检查。 例如。查询一个简单的sql语句 select * from users where email-id =“输入值”
如果存在则打开主应用程序 否则,如果它不存在,则插入包含输入值的行,然后打开应用程序。
答案 1 :(得分:0)
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