我的计划是为用户创建用户界面,用户可以在应用程序注册并登录时查看自己的信息。
示例:当用户A在应用程序上注册时,信息会自动输入firebase数据库,然后他们只登录自己的信息(例如姓名,电子邮件,日期)将显示。
从上图中可以看出textview将被他们在数据库中的特定数据所取代。
当用户在应用程序上注册时,会直接从firebase auth users-uid中获取用户的唯一ID。
答案 0 :(得分:2)
是的,如果你的数据库中有这个,那就可以了:
users
useruid
name: peter
gender: male
然后在android中你可以这样做:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String useruid=user.getUid();
以上将从数据库中检索useruid,然后您可以进行查询:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("user").child(useruid);
并且只有该用户的数据才会出现在活动中..
答案 1 :(得分:0)
经过身份验证后,首先必须获取当前用户的Uid。
String currentUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
如果该Uid存在于Firebase数据库中,它将获取其子数据,并且只会在活动中显示该用户数据。
DatabaseReference uDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
uDatabaseReference.child(currentUid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
u_name = dataSnapshot.child("name").getValue().toString();
u_phone = dataSnapshot.child("email").getValue().toString();
u_date= dataSnapshot.child("date").getValue().toString();
u_type= dataSnapshot.child("type").getValue().toString();
Toast.makeText(ProfileActivity.this, "name: "+ u_name + "\nemail: "+ u_email + "\ndate: " + u_date + "\ntype: " + u_type, Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});