如何从 Firebase 授权中检索信息
Posted
技术标签:
【中文标题】如何从 Firebase 授权中检索信息【英文标题】:How do i retrieve information from firebase Authorization 【发布时间】:2021-09-09 02:40:59 【问题描述】:我创建了一个从 Firebase 实时数据库中检索信息的个人资料页面 但现在我知道将它存储在实时数据库中是不安全的,所以我决定将它保存在身份验证本身中,但我不知道如何从中检索代码 这就是我创建个人资料页面的方式
ublic class Profile extends AppCompatActivity
private FirebaseUser user;
private DatabaseReference reference;
private String userID;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
final TextView Username=findViewById(R.id.Username1);
final TextView email=findViewById(R.id.emailadress);
final TextView Password=findViewById(R.id.passwordd);
user= FirebaseAuth.getInstance().getCurrentUser();
reference= FirebaseDatabase.getInstance().getReference("Users");
userID=user.getUid();
reference.child("Driver").child(userID).addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot snapshot)
Users usersnapshot=snapshot.getValue(Users.class);
if(usersnapshot!=null)
String username=usersnapshot.getUsername();
String Email=usersnapshot.getMail();
String password=usersnapshot.getPassword();
Username.setText(username);
email.setText(Email);
Password.setText(password);
@Override
public void onCancelled(@NonNull DatabaseError error)
);
【问题讨论】:
【参考方案1】:这取决于您要查找的信息。 Firebase 身份验证仅存储有关用户的一小组信息,例如:
Firebase 将无法向您返回用户密码 - 因为这会带来巨大的安全风险。 Firebase 没有用户名属性,但它有一个显示名称,这可能是您要查找的名称。你可以通过查看get来获取当前用户的信息:
FirebaseAuth.getInstance().getCurrentUser()
另请参阅getting the currently signed in user 上的文档。
如果您想存储关于用户的其他信息,您可以像以前一样将其存储在您自己的数据库中的 UID 下。
您应该永远以您的方式存储凭据,因为以明文形式存储密码是您可能对用户造成的最严重的安全风险之一。例如:Why shouldn't I store passwords in plaintext?,还有更多来自this。
【讨论】:
以上是关于如何从 Firebase 授权中检索信息的主要内容,如果未能解决你的问题,请参考以下文章