java - 从firebase方法检索数据
问题描述
如何从 firebase 为 2 个不同的构造函数检索数据?这是我的鸡蛋课。我只想为一个接收下蛋,为另一个接收孵化和状态。
private String laying, hatching,status;
public Eggs() {
}
public Eggs(String laying)
{
this.laying=laying;
}
public Eggs(String hatching, String status) {
this.hatching = hatching;
this.status = status;
}
我使用这种方法从 firebase 检索数据
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot breedingSnap : dataSnapshot.getChildren()) {
Eggs data = breedingSnap.getValue(Eggs.class);
eg.add(data);
}
});
我怎样才能实现这样的东西-
Eggs laying=new Eggs(String laying);
Eggs st=new Eggs(String hatching,String status);
然后将它们添加到arraylist?
解决方案
使用传递给 onDataChange的DataSnapshot使用child()访问相关的子快照,使用getValue()将它们读出,然后将它们传递给您的构造函数。
getValue() 的文档说:
getValue() 将此快照中包含的数据作为本机类型返回。返回的可能类型有:
- 布尔值
- 细绳
- 长
- 双倍的
- 地图
- 列表
这个列表是递归的;上述列表中 Object 的可能类型由同一个列表给出。这些类型对应于 JSON 中可用的类型。
例如,要从快照中读取一个名为“laying”的字符串子值:
DataSnapshot layingSnapshot = breedingSnap.child("laying");
String laying = (String) layingSnapshot.getValue();
因此,您必须知道要阅读的孩子的姓名,还要检查和转换他们的预期类型。为避免运行时问题,您还应该在强制转换之前检查子值的类型。
推荐阅读
- javascript - 如何使用 javascript 识别剪贴蒙版,而不使用 Photoshop 的比率?
- database - 外键约束的格式不正确 - MariaDB & Laravel
- javascript - 为什么在 ReactJS 中导入时 useContext 不更新我的值?
- rest - 如何在 REST api 中为进度“资源”建模?
- python-3.x - 在 tkinter 中创建与按钮关联的变量
- c - 数组存储在内存中的什么位置?
- string - 在Scala中字符串的每个字符之间添加一个字符串
- amazon-web-services - 当应用程序处于终止状态时,AWS 推送通知单击不起作用
- reactjs - 在 React-Admin 根元素中使用 StylesProvider 会导致错误
- java - 我无法捕获异常 400 的服务器响应消息 - Java API