如何从嵌套的Firestore数据库获取所有文档

时间:2020-06-20 15:24:32

标签: java android firebase google-cloud-firestore

一个人已经登录了该应用程序。此人有一些订单,这些订单在详细的概述列表中进行了拆分。不幸的是,此列表在输出中为空。如何在详细的概览列表中获取订单的值?

我的firebase看起来像这样: 集合:用户->文档用户ID->集合bestellungen->文档bestellungen ID->集合geasmtbestellungen。

我想要gesamtbestellung中的所有文件。我有当前使用的ID和bestellungen集合的ID

public void getGesamtbestellung(int bestellnr) {
    final FirebaseFirestore db = FirebaseFirestore.getInstance();
    final FirebaseAuth mAuth = FirebaseAuth.getInstance();

    db.collection("users").document(mAuth.getCurrentUser().getUid()).collection("bestellungen").document().collection("gesamtbestellungen").whereEqualTo("bestellnummer",61)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        ArrayList<Bestellung> list = new ArrayList<>();
                        //Toast.makeText(getActivity(), "Bestellungen wurden gefunden!", Toast.LENGTH_SHORT).show();
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            //Log.d(TAG, document.getId() + " => " + document.getData());
                            Bestellung best = document.toObject(Bestellung.class);
                            System.out.println("-------------------->" + best.toString());
                            list.add(best);
                        }
                        //System.out.println(list.get(0).toString());

                        //Toast.makeText(getActivity(), "Bestellungen wurden gefunden!", Toast.LENGTH_SHORT).show();
                    } else {
                        //Toast.makeText(getActivity(), "Es ist ein Fehler beim Abrufen der Bestellungen aufgetreten: " + task.getException().toString(), Toast.LENGTH_SHORT).show();
                        //Log.w(TAG, "Error getting documents.", task.getException());
                    }
                }
            });
}

1 个答案:

答案 0 :(得分:1)

这是您的查询:

pip install Werkzeug==0.16.1

请注意,您尚未在“ bestellungen”下识别文档。不将任何参数传递给db .collection("users") .document(mAuth.getCurrentUser().getUid()) .collection("bestellungen") .document() // note the missing document ID here .collection("gesamtbestellungen") .whereEqualTo("bestellnummer",61) 会生成带有随机ID的文档引用,这几乎可以肯定保证您一无所获。

如果您要查询特定文档下的子集合,则必须提供该文档的ID。查询路径中没有通配符。

如果您要查询称为“ gesamtbestellungen”的子集合的 all 中的所有文档的 all ,那么您将需要一个collection group query