Firebase Android经过身份验证的用户

时间:2018-03-09 22:09:11

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

我是Firebase的新手并且有一个问题。

我希望将我的新身份验证用户链接到我工作的数据库。

我有一个名为addChild的类,它包含一个用于添加子名称的editText,需要将其链接到数据库上经过身份验证的用户。因此,当该用户登录时,他们可以看到他们输入的孩子的姓名。

有人知道我怎么做吗?我已经建立了实时数据库连接我不知道从这里去哪里。

由于 这就是我创建用户的方式。

 auth.createUserWithEmailAndPassword(email, password)
     .addOnCompleteListener(CreateUserAccount.this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            Toast.makeText(CreateUserAccount.this, "User Account Created" + task.isSuccessful(), Toast.LENGTH_SHORT).show();

            // If sign in fails, display a message to the user. If sign in succeeds
            // the auth state listener will be notified and logic to handle the
            // signed in user can be handled in the listener.
            if (!task.isSuccessful()) {
                Toast.makeText(CreateUserAccount.this, "Authentication failed." + task.getException(),
                        Toast.LENGTH_SHORT).show();
            } else {
                startActivity(new Intent(CreateUserAccount.this, LandingPage.class));
                finish();
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

使用Firebase身份验证对用户进行身份验证后,您也可以将他的uid发送到数据库:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String useruid=user.getUid();

然后在数据库中你会得到这个:

Users
  useruid
     name: userx
     email: userx@gmail.com
String name = editText.getText().toString();
String email = editTxt.getText().toString();

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users").child(useruid);
ref.child("name").setValue(name);
ref.child("email").setValue(email);

编辑:

  } else {
 FirebaseUser user= task.getResult().getUser();
 DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users").child(user.getUid());
ref.child("name").setValue(name);
ref.child("email").setValue(email);
        startActivity(new Intent(CreateUserAccount.this, LandingPage.class));
         finish();
        }

在其他活动中添加孩子:

  1. 首先从edittext中检索名称
  2. 然后像这样添加它们:

    Children
       useruid <--- the id that is in the usernode above
           childname: john
       useruid
           childname: james bond