gpt4 book ai didi

android - 使用身份验证用户从 firebase 检索数据不显示在 ListView 上

转载 作者:行者123 更新时间:2023-11-30 05:04:59 28 4
gpt4 key购买 nike

我想通过身份验证用户从 firebase 检索数据。我使用 ListView 来显示数据。但是运行后不显示。 My firebase structure

public class InfoDisplayActivity extends AppCompatActivity {

private ListView listViewINFO;
DatabaseReference databaseReference;
FirebaseAuth firebaseAuth;
List<UserInformation> infoList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info_display);

listViewINFO = findViewById(R.id.listViewINFO);
firebaseAuth = FirebaseAuth.getInstance();

if (firebaseAuth.getCurrentUser() == null){
finish();
startActivity(new Intent(this,RegisterActivity.class));
}
//FirebaseUser user = firebaseAuth.getCurrentUser();


infoList = new ArrayList<>();
}

@Override
protected void onStart() {
super.onStart();
databaseReference = FirebaseDatabase.getInstance().getReference("User Information");
FirebaseUser user = firebaseAuth.getCurrentUser();
String UserID = user.getUid();
databaseReference.child("User Information").child(UserID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot INFOSnapshot : dataSnapshot.getChildren()){
UserInformation userInfo = INFOSnapshot.getValue(UserInformation.class);
infoList.add(userInfo);
}
UserInfoAdapter userInfoAdapter = new UserInfoAdapter(InfoDisplayActivity.this, infoList);
listViewINFO.setAdapter(userInfoAdapter);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}
}

我关注 this YouTube 上的教程。

最佳答案

您的代码中的问题是您使用了两次 User Information 引用。一旦声明了 databaseReference 对象:

databaseReference = FirebaseDatabase.getInstance().getReference("User Information");
// ^

其次,当您附加监听器时:

databaseReference.child("User Information").child(UserID).addListenerForSingleValueEvent(/* ... */);
// ^

要解决这个问题,只需从上面的代码行中删除 .child("User Information"):

databaseReference.child(UserID).addListenerForSingleValueEvent(/* ... */);

关于android - 使用身份验证用户从 firebase 检索数据不显示在 ListView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54731412/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com