我想在Android屏幕上检索并显示保存在Firebase数据库中的馆藏数据。
我从用户那里获得了三种类型的信息(订单,数量,日期),并使用以下信息将其保存在数据库中:
OrderInfo orderInfo = new OrderInfo(orderText, quantityText, dateText);
db.collection("orders").document(user.getUid()).set(orderInfo)
现在我要检索所有数据(orderText,quantityText,dateText) 保存在集合“订单”中,可能以列表的形式。
我该怎么做?
答案 0 :(得分:0)
要在单个orderText
对象中获取quantityText
,dateText
和OrderInfo
属性的值,请使用以下代码行:
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
}
}
});