java - 如何从 Firebase 数据库中获取这些数据
问题描述
我正在开发一个 android 应用程序,它的数据存储在 firebase 数据库中。
name=dataSnapshot.child(email).child(dt+" "+).getValue(Warden.class).getName();
在这个片段中,我想从数据库中访问节点,其中节点被命名为:当前日期和任意数字的组合。
我可以使用 Date 类(使用 'dt' 变量)获取当前日期,但我无法获得数字,即我无法获得搜索该节点的组合。我尝试使用正则表达式,但做不到。我想获得一个以当前日期开头并以 3 位数字结尾的字符串。请帮助我,谢谢。
-Warden
|-ahilyabhawan
|-ashokbhawan
|-Apr 18, 2018 339
|-bhawan: "Ashok Bhawan"
|-date: "May 6, 2018"
|-gender: "Male"
|-intime:"14 : 28 pm"
|-mobile:"9785648810"
|-room_no: "359"
|-student_id: "Coer ID: 14041044"
|-Apr 24, 2018 349
|-May 1, 2018 129
|-May 11, 2018 156
|-May 2, 2018 223
DateFormat df=DateFormat.getDateInstance(DateFormat.MEDIUM);
dt=df.format(d);
databaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(email)){
name=dataSnapshot.child(email).child(dt+" "+"?").getValue(Warden.class).getName(); //***** line 1 *****
student_id=dataSnapshot.child(email).child(dt+" "+"?").getValue(Warden.class).getStudent_id();
if(name!=null&&student_id!=null) {
progressDialog.dismiss();
arrayList.add(dt + " \n" + name + "\n" + student_id);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
现在我面临的问题是我想访问包含当前日期和任何 3 位数字的“ ashokbhawan ”节点的每个子节点。现在问题是我能够获取当前日期,但我需要的是当前日期和任何 3 位数字的组合。我怎么能得到那个?
解决方案
您应该使用 Firebase 实时数据库(文档)的过滤能力并构建如下查询并使用适当的侦听器(请参阅文档,上一个链接):
Query query = databaseReference.child("posts").child("Warden/ashokbhawa").startAt('Apr 18, 2018').endAt('Apr 19, 2018');
当然,您可以将正确的值作为变量传递。
旁注:我建议您将日期存储为 YYYYMMDD
推荐阅读
- ruby-on-rails - 在 Rails 的 to m 表中访问附加数据
- javascript - JQuery UI 对话框没有为我打开
- google-app-engine - 如何将 -ldflags 传递给 GAE 构建?
- android - json 枚举反序列化破坏了 kotlin 空安全性
- c++ - 调用存储在 DLL 中的 C++ 类方法
- wordpress - 函数 apply_filters() 用于在 Wordpress 中添加不需要的内容
- xamarin.android - 我想添加自定义浮动微调器
- go - 从 Go 中的另一个嵌套结构变量访问结构的变量
- javascript - 我需要一个 jQuery 插件来用光笔书写
- javascript - 像进度条一样从 JS 到 CSS 获取价值