【问题标题】:How to retrieve arrays from FirebaseFirestore using Collections?如何使用 Collections 从 Firebase Firestore 中检索数组?
【发布时间】:2021-06-10 11:23:14
【问题描述】:

This is my Firestore database

db.collection("PublicFormDetails")
                .whereEqualTo("Topic Name",message)
                .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if(task.isSuccessful())
                {
                    for (QueryDocumentSnapshot snapshot : Objects.requireNonNull(task.getResult())) {
                        String value1 = snapshot.getString("QuestionName");
                        Toast.makeText(PublicVote.this, value1, Toast.LENGTH_SHORT).show();
                        q_tv1.setText("Question: "+value1);
                    }
                }
                }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(PublicVote.this,e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

现在我想检索以数组形式保存的 Description 和 No. of Options,我上面的代码还打印了关于主题名称的数据的其他详细信息选择因此我使用 whereEqualTo("Topic Name", message) 作为我的查询(其中消息是我选择的主题)。 现在如何在此检索描述和选项编号。我不能使用 DocumentReference,因为那样我就不能使用 whereEqualsTo。请帮忙!!!

【问题讨论】:

标签: java android arrays firebase google-cloud-firestore


【解决方案1】:

要获取这两个数组的内容,请在for循环中添加以下两行代码:

List<String> description = (List<String>) snapshot.get("Description");
List<String> noOfOptions = (List<String>) snapshot.get("Np. of Options");

就在这一行之后:

q_tv1.setText("Question: "+value1);

如果您需要这些数组中的每个元素,请为每个列表创建一个 for 循环并获取相应的数据。

logcat 中的结果将是:

Hey
What's up?

对于第一个数组,和:

123
456

对于第二个数组。

【讨论】:

  • 感谢您的快速回复! @AlexMamo 无法解析符号文档。我正在使用 QuerySnapshot,所以我猜文档无法正常工作。
  • 对不起,我的错。请参阅我更新的答案。应该是 snapshot 而不是 document。现在可以用了吗?
  • 很高兴听到它有效。不客气。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多