如何解决从 Firebaase 检索第二个项目时出错
这是我的第一个 android 应用程序,我很兴奋,但我在最后一个函数中遇到了错误。可以检索第一个数据,但是当我从 firebase 数据库检索第二个数据时出现错误 "java.lang.indexoutofboundsexception: Index: 1,Size 1 at java.util.ArrrayList.get()"
这是我的程序
//start here
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Wishlist");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
List<String> wishlist_item = new ArrayList<String>();
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
String data = postSnapshot.getValue(String.class);
wishlist_item.add(data);
}
//list 1
L1.setonClickListener(new View.OnClickListener() {
String a = wishlist_item.get(0);
@Override
public void onClick(View view) {
if(a.isEmpty()){
Toast.makeText(wish_list.this,"Empty Field",Toast.LENGTH_SHORT).show();
}else{
Intent launchWish = new Intent(wish_list.this,web_view2.class);
launchWish.putExtra("k",a);
startActivity(launchWish);
}
}
});
//list 2
L2.setonClickListener(new View.OnClickListener() {
String b = wishlist_item.get(1);
@Override
public void onClick(View view) {
if(b.isEmpty()){
Toast.makeText(wish_list.this,b);
startActivity(launchWish);
}
}
});
//the end for 5 lists
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
我只想从我的 Firebase 中检索 5 个数据。你可以在这里看到我的 firebase 表
You can see my firebase table here
我从昨天开始就一直在解决这个问题,但没有得到任何答复。我非常感谢您的帮助。
解决方法
正如您在问题中提到的,您收到以下错误:
"java.lang.IndexOutOfBoundsException: Index: 1,Size 1 at java.util.ArrrayList.get()"
因为您试图从不存在的位置的“ArrayList”中获取元素。正如我在以下参考资料中看到的:
Firebase-root -> Users -> "GRUK ... cL03" -> Wishlist
那里有两个项目,但是,错误消息非常明确地说只有一个。最有可能的是,第二个用户“T9az ... I4v2”的愿望清单,我认为是真正的登录用户,在愿望清单中包含一个项目,因此出现了错误。所以要解决这个问题,在使用之前一定要确保能找到对应索引处的元素,而不是盲目地假设某个元素总是存在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。