android - 从 Firebase 数据库中检索数据列表,并将其编写为电子邮件的消息
问题描述
我有一些数据存储在 Firebase 数据库中,其结构如下图所示
在 products 节点中,每个子节点都有项目 productName 和数量。按下按钮后,我想从每个孩子那里检索这些数据。然后将它们设置为电子邮件的正文并排列它们,使它们用逗号分隔,然后在最后显示总价格
产品名称1,数量1
产品名称2,数量2
产品名称3,数量3
总计 =
我认为解决方案似乎有点简单。但由于我是 Android Studio 和 Firebase 的新手,我缺乏实现它的技能。提前致谢。
编辑:对不起,我忘了提,我将使用意图发送电子邮件。
解决方案
试试这个,告诉我你在哪里卡住了!
FirebaseDatabase databaseRef = FirebaseDatabase.getInstance().
getReference("Requests");
ValueEventListener mValueEventListener;
ArrayList<Requests> requestList = new ArrayList<>();
mValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
try{
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Requests obj = postSnapshot.getValue(Requests.class);
requestList.add(obj)
}
//You will get the list of request objects here and you can parse products from it via loop
//Handle your code here further
} catch(Exception e){
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
databaseRef.addValueEventListener(mValueEventListener);
请求类
import java.util.ArrayList;
public class Requests {
String address,name,phone,status,total;
ArrayList<Products> productsArrayList;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public ArrayList<Products> getProductsArrayList() {
return productsArrayList;
}
public void setProductsArrayList(ArrayList<Products> productsArrayList) {
this.productsArrayList = productsArrayList;
}
}
产品.类
public class Products {
String price,productId,productName,quantity,userPhone;
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}
推荐阅读
- http - 在浏览器中访问 IP 摄像机流
- php - 我应该在哪里存放 morilog/jalai 包?
- core-data - CoreData:为什么在 book.isPublic 切换时不刷新 UI
- java - java.util.InputMismatchException:对于输入字符串:“2147483648”
- visual-studio - 在 Visual Studio 2019 中找不到 nuget 安装的模板
- java - 为什么我的 FTP 列表返回错误回复代码 425
- java - ExecutorService 线程在 RxJava 代码中未按预期工作
- android - RemoteServiceException 在 MIUI 11 上使我的应用程序崩溃
- docker - 为什么会出错:“docker build”需要 1 个参数
- c++ - 为什么地图的大小在比较时会发生变化?