java - Firebase Android 显示错误用户
问题描述
它显示了一些东西,但来自错误的用户,而不是登录的用户。事实上,它是最新的注册用户。有什么建议么?这是我的代码:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getInstance().getReference("userInfos");
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
UserInformation userInformation = dataSnapshot.getValue(UserInformation.class);
vorname.setText(userInformation.vorname);
nachname.setText(userInformation.nachname);
alter.setText(userInformation.alter);
sprachen.setText(userInformation.sprachen);
System.out.println("Prev: " + s);
}
解决方案
好吧,您使用的侦听器类型是 ChildAdded ,当您添加新用户时会触发它(这就是您获取最后添加的用户的原因)要获取当前用户数据用户,请使用值事件侦听器和传递记录的用户 ID:
String UID = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = database.getInstance().getReference("userInfos");
ref.child(UID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
UserInformation userInformation = dataSnapshot.getValue(UserInformation.class);
vorname.setText(userInformation.vorname);
nachname.setText(userInformation.nachname);
alter.setText(userInformation.alter);
sprachen.setText(userInformation.sprachen);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
推荐阅读
- shell - AWK 匹配方括号内的精确字符串
- c# - 会话数据从一种方法接收到 NULL 到另一种方法 asp.net core 3
- android - 如何在 webview 上间隔深度链接以保持本机应用会话活动?
- javascript - 我正在使用 jQuery 进行图像预览。但是我无法发布预览后单击的数据。我怎样才能让它成为现实?
- javascript - ReactJS 中的样式化组件自定义 CSS
- flutter - 对颤动的东西设置时间限制
- html - 选择单选按钮时可以更改背景吗?
- firebase - 如何使用颤振从 Firebase 存储中查看我上传的 pdf?
- google-apps-script - 将 GET 请求发送到 Trello API 并将数据导入 Google 表格的 Google 脚本
- python - XGBRegressor 训练和测试得分高,但预测不好