当前位置: 首页 > 知识库问答 >
问题:

我想使用java[复制]将数据从firestore云加载到android studio中的listview

师腾
2023-03-14

这是我的密码。我在adapater中使用此数组列表在listview中显示

 public ArrayList<String> loadFromFirebase() {
        ArrayList<String> arrayList = new ArrayList<>();
        db.collection("notite").whereEqualTo("User email", user.getEmail())
                .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if(task.isSuccessful() && !task.getResult().isEmpty()) {
                    DocumentSnapshot documentSnapshot = task.getResult().getDocuments().get(0);
                    String documentId = documentSnapshot.getId();
                    db.collection("notite").document(documentId).get()
                            .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                                @Override
                                public void onSuccess(DocumentSnapshot documentSnapshot) {
                                    if(documentSnapshot.exists()) {
                                        String notita = documentSnapshot.getString("Detalii");
                                        arrayList.add(notita);
                                    } else {
                                        Toast.makeText(getContext(), "Notes does not exist",
                                                Toast.LENGTH_LONG).show();
                                    }
                                }
                            }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(getContext(), "Failure retrieving",
                                    Toast.LENGTH_LONG).show();
                            Log.d("Retrieve", e.toString());
                        }
                    });
                } else {
                    Toast.makeText(getContext(), "Does not exist"
                            , Toast.LENGTH_LONG).show();
                }
            }
        });

就在这里

        return arrayList;
    }

返回之前,我的数组列表是空的。你们能帮我吗?

共有1个答案

韦翰音
2023-03-14

我不知道如何解决空列表,但您可以在列表中添加项目后填充适配器,而不是返回列表,如:

public void loadFromFirebase() {
    ArrayList<String> arrayList = new ArrayList<>();
    db.collection("notite").whereEqualTo("User email", user.getEmail())
            .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if(task.isSuccessful() && !task.getResult().isEmpty()) {
                DocumentSnapshot documentSnapshot = task.getResult().getDocuments().get(0);
                String documentId = documentSnapshot.getId();
                db.collection("notite").document(documentId).get()
                        .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                            @Override
                            public void onSuccess(DocumentSnapshot documentSnapshot) {
                                if(documentSnapshot.exists()) {
                                    String notita = documentSnapshot.getString("Detalii");
                                    arrayList.add(notita);
                                    arrayAdapter = new ArrayAdapter<>(getContext(),android.R.layout.simple_list_item_1,
                                            arrayList);
                                    listView.setAdapter(arrayAdapter);
                                } else {
                                    Toast.makeText(getContext(), "Notes does not exist",
                                            Toast.LENGTH_LONG).show();
                                }
                            }
                        }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(getContext(), "Failure retrieving",
                                Toast.LENGTH_LONG).show();
                        Log.d("Retrieve", e.toString());
                    }
                });

            } else {
                Toast.makeText(getContext(), "Does not exist"
                        , Toast.LENGTH_LONG).show();
            }
        }
    });
}
 类似资料:
  • 路径1-match_creator/cricket/matchlists;路径2-match_creator/cricket/completedmatchlists;我有一个名为matchList(路径1)的集合,其中有一个名为C434108的文档。现在我想把这个docc434108)移动到路径2; 复制此docc434108)之后,我想从路径1中删除此docc434108)。 我的index.j

  • 创建新用户后,我想向Firestore中的新集合添加数据。 我已将我的职能设置为这样; 当运行该函数时,我得到控制台日志正确地打印出userId,但我得到以下错误; 类型错误:firestoreDB。集合(…)。文档不是导出时的函数。createUser。功能。消防商店。文件在对象上创建(/user\u code/index.js:23:73)。(/user_code/node_modules/f

  • 我需要从Google Cloud Storage(GCS->Temp Table->Main table)中加载100个表到BigQuery。我创建了一个python进程,将数据加载到BigQuery中,并在AppEngine中进行调度。因为AppEngine最多有10min的超时时间。我已经在异步模式下提交了作业,并在稍后的时间点检查了作业状态。由于我有100个表,需要创建一个监控系统来检查作业

  • 问题内容: 我正在尝试通过JQUERY AJAX调用来更新页面加载和选择菜单更改时的高图表。有以[[10,1228800000],[10,1228800000]]格式返回的数据。图表为空白,不对任何数据进行图形处理。 尝试了此处发布的几种解决方案,但没有一个有效。 有什么错误吗?提前致谢。编辑: 最新的代码仍然无法正常工作: 问题答案: 您必须使用文档中描述的系列对象的setData方法。你的情况

  • 我刚接触Cassandra Spark,并尝试使用Spark主集群将数据从文件加载到Cassandra表。我遵循以下链接中给出的步骤 http://docs.datastax.com/en/datastax_enterprise/4.7/datastax_enterprise/spark/sparkImportTxtCQL.html 在第8步,数据显示为整数数组,但当我使用相同的命令时,结果显示为

  • 问题内容: 我正在尝试使用Java + Hibernate + Spring将CSV文件加载到mySQL数据库中。我在DAO中使用以下查询来帮助我加载到数据库中: 我有一些想法可以从http://dev.mysql.com/doc/refman/5.1/en/load- data.html 使用它,以及如何从hibernate +spring应用程序将csv文件导入到mysql中? 但是我得到了错