java - 如何从当前登录的用户获取数据
问题描述
运行应用程序后,它会显示另一个用户名而不是登录的用户...
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
// To get children count
dataSnapshot.getChildren();
// email = dataSnapshot.child("email").getValue().toString();
// gender = dataSnapshot.child("gender").getValue().toString();
name = dataSnapshot.child("Nome").getValue().toString();
}
解决方案
您需要在检索数据时使用 userId,才能检索当前登录用户的数据。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userId = user.getUid();
然后你可以这样做:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Condutores").child(userId);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i("Database", dataSnapshot.child("Nome").getValue(String.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
})
添加对节点的引用userId
,然后附加一个ValueEventListener
并检索用户的数据。
推荐阅读
- python - gensim most_similar 有正负,它是如何工作的?
- spring - Spring Boot JWT - 如何实现刷新令牌和注销 REST-API
- sql - 如何按第一列分组并从第二列中选择字符串取决于第三列中的数字?
- javascript - React native expo:选项卡导航器设置初始屏幕
- python - 将 pyspark 数据框转换为 python 字典列表
- flutter - Flutter TabBarView 展开子
- mysql - 无法在 DDEV 项目中导出完整的 MariaDB
- azure - Azure API 管理 - 外部类型:网关无法访问虚拟网络中的资源?
- python - 使用 Oracle 游标插入 Sql Server 时,大量 Pyodbc 插入无法将 int 转换为 big
- azure-data-explorer - KQL 扩展到新列,里面有汇总