如何使用Android Studio检索从Firebase数据库保存的所有收集数据用户?

时间:2019-05-01 05:32:35

标签: android firebase google-cloud-firestore

enter image description here

我想在Android屏幕上检索并显示保存在Firebase数据库中的馆藏数据。

我从用户那里获得了三种类型的信息(订单,数量,日期),并使用以下信息将其保存在数据库中:

OrderInfo orderInfo = new OrderInfo(orderText, quantityText, dateText);
db.collection("orders").document(user.getUid()).set(orderInfo)

现在我要检索所有数据(orderText,quantityText,dateText) 保存在集合“订单”中,可能以列表的形式。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

要在单个orderText对象中获取quantityTextdateTextOrderInfo属性的值,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference ordersRef = rootRef.collection("orders");
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
ordersRef.document(uid).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                OrderInfo orderInfo = document.toObject(OrderInfo.class);
                Log.d(TAG, orderInfo.getOrderText() + " / " + orderInfo.getQuantityText() + " / " + orderInfo.getDateText());
            }
        }
    }
});

如果要获取OrderInfo集合中的所有orders对象,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference ordersRef = rootRef.collection("orders");
ordersRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            List<OrderInfo> list = new ArrayList<>();
            for (QueryDocumentSnapshot document : task.getResult()) {
                OrderInfo orderInfo = document.toObject(OrderInfo.class);
                list.add(orderInfo);
            }

            //Do what you need to do with  your list
        }
    }
});