首页 > 解决方案 > 如何将 Firebase 实时数据库的搜索结果放入 Android 的数组列表中?

问题描述

我正在设置一个在 Firebase 实时数据库中搜索的方法,并将查询结果放在一个数组中并返回该数组。

我创建了一个数组,它需要一个String并且addValueEventListener我有一个循环,其中每个搜索结果都添加到一个数组中。

public List<String> getTapData(final String tapName, final String date, String user) {

    final List<String> tapDataList = new ArrayList<>();
    databaseReference.child(TAPDATA)
            .child(user)
            .child("-L_D90jRIkBhz4xZ2ija")
            .orderByChild("tapDate")
            .equalTo(date)
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (final DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        String resultData = snapshot.child("tapName").getValue().toString();
                        if (resultData.equals(tapName)) {
                            tapDataList.add(new TapData(resultData));
                        }
                    }
                }

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

    Toast.makeText(getActivity(), String.valueOf(tapDataList.size()), Toast.LENGTH_SHORT).show();
    return tapDataList;
}

我希望将搜索结果添加到数组列表中,但数组列表中没有添加数据。

标签: javaandroidfirebase-realtime-database

解决方案


推荐阅读