java - 从 firebase 实时数据库中获取数据
问题描述
我想以排序方式从firebase获取数据,我尝试了以下方法,但它不能正常工作并收集所有数据。
这是我的 firebase 数据库的图像:
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
String input = "G";
Date cd = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
String formattedDate = df.format(cd);
FirebaseUser currentUser = mAuth.getCurrentUser();
DatabaseReference data = databaseRef.child("Data").child(currentUser.getUid()).child(formattedDate.toString()).child(medname.toString());
databaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
List<String> data = new ArrayList<String>();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
data.add(postSnapshot.getValue().toString());
}
Log.d("datafriebase",""+data);
}
我想以排序方式获取数据,例如值 1,值 2,但我正在获取整个数据库
解决方案
您正在获取整个数据库,因为您正在读取databaseRef
,您将其初始化为:
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
要仅获取嵌套数据,请从data
设置为引用该路径的 中读取:
DatabaseReference data = databaseRef.child("Data").child(currentUser.getUid()).child(formattedDate.toString()).child(medname.toString());
所以:
data.addValueEventListener(new ValueEventListener() {
...
推荐阅读
- html - 重复第 n 个子值
- vue.js - VueJs Web 应用程序无法显示产品
- jwt - 从 JWT 生成访问令牌
- xpath - 表格中的 Google 工作表导入数据(ImportXML 和 ImportHTML 不起作用)
- scala - Scala RestAPI 客户端设计:处理异常
- javascript - 如何从客户端发送 Firebase 令牌并在 server.js 中接收它
- opengl - 如何手动绘制 3 个深度缓冲区?每个深度缓冲区值必须大于其前一个计数器部分
- vba - 如何在 MS Word 宏中解码 base64 字符串?
- xpath - 如何在 Steam 创意工坊上为 Google 表格的 IMPORTXML 获取正确的 XPath?
- server - Discord.js - 如何发出命令从服务器中删除所有频道?