【发布时间】:2020-11-14 11:01:27
【问题描述】:
我正在 Android Studio 中制作一个 Android 应用,我想从 Firebase 获取特定数据。我正在尝试搜索Firebase Realtime Database 以获取所有具有usercode 或1234 的用户,然后获取他们的名字。这就是我在 Firebase 中的设置方式:
由于我正在搜索 usercode = 1234 的数据,它将返回(在数据快照中)关于 Joe 和 Lily 的所有信息(因为他们是两个用户,用户代码为 1234),但它不应该t 返回有关 Kevin 的信息。我是这样做的:
Query getUsers = ref.orderByChild("usercode").equalTo(1234);
getUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
//User with usercode = 1234 exists
} else {
//User with that Usercode doesn't exist
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
datasnapshot,如果转换为字符串,我相信会包含 Lily 和 Joe 的所有信息。
我想要做的是从datasnaphot 获取第一个用户的name(在这种情况下是乔)。然后,我的代码将通过一些测试使用它,然后转到第二个用户的name(即 Lily)并重复测试。此外,如果有 100 个用户,那么我需要为这 100 个用户代码为 1234 的每个用户重复它,所以我可能需要一些可重复的东西。
所以不知何故,我需要从所有具有usercode 或1234 的用户中找到孩子的name 的第一个值,然后重复直到我得到所有名称并在所有用户上运行测试他们。
我是 Stackoverflow 的新手,如果我遗漏了任何有助于回答问题的信息,请告诉我。
---- 编辑----
我现在已经知道如何使用 Firebase Firestore 做到这一点。它具有更简单的查询,并允许您对结果进行更多操作。如果其他人遇到我上面提到的相同问题,您可能想尝试 Firebase Firestore。
【问题讨论】:
标签: java android firebase firebase-realtime-database