gpt4 book ai didi

java - 在 Firebase 中搜索数据 |安卓

转载 作者:搜寻专家 更新时间:2023-11-01 08:22:19 25 4
gpt4 key购买 nike

我有应用程序并且正在使用 Firebase 实时数据库。我需要从 Search 获取所有数据并使用此代码:

      myRef = FirebaseDatabase.getInstance().getReference();
Query query = myRef.orderByChild("Search");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
GenericTypeIndicator<ArrayList<String>> t = new GenericTypeIndicator<ArrayList<String>>(){};
test2 = dataSnapshot.getValue(t);

我需要在 ArrayList 中获取所有内容,但现在我遇到了异常

com.google.firebase.database.DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap

数据库结构:

view structure

我该如何解决这个问题?我需要从 ArrayList 中的 Search 获取所有数据。如果您需要,我可以发布 Activity 和日志中的所有代码。

JSON:

{
"Search" : [ "Eggs", "Milk", "Apples", "Carrot", "Sugar", "Potato" ]
}

最佳答案

假设 object 节点是您的 Firebase 数据库根目录的直接子节点,要解决此问题,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference searchRef = rootRef.child("object").child("Search");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String value = ds.getValue(String.class);
list.add(value);
}
Log.d("TAG", list.toString());
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
searchRef.addListenerForSingleValueEvent(valueEventListener);

输出将是:

Eggs
Milk
Apples
Carrot
Sugar
Potato

关于java - 在 Firebase 中搜索数据 |安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49512345/

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