gpt4 book ai didi

java - firebase如何获得 child 的 child ?

转载 作者:搜寻专家 更新时间:2023-10-30 22:28:41 26 4
gpt4 key购买 nike

所以我卡住了。我想从我的 firebase 数据库中检索 child 的 child 。

我的数据库结构是这样的

users{ 
user1{
name:
regno:
carmodel:
caryear}
user2{
name:
regno:
carmodel:
caryear}
user3{
name:
regno:
carmodel:
caryear}}

Regno = 汽车登记号。

当我输入“carreg no”并按 ok 时。我想要代码搜索每个 carreg。如果找到匹配项,则执行下一组代码。

到目前为止,我已经尝试将它存储在一个数组中。但是当我输入 reg 或任何存在的变量名时,代码似乎失败了。

 public void input(){

FirebaseDatabase firebase = FirebaseDatabase.getInstance();
final DatabaseReference table_user = firebase.getReference("User");
table_user.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Get map of users in datasnapshot
collectPhoneNumbers((Map<String,Object>) dataSnapshot.getValue());
}

@Override
public void onCancelled(DatabaseError databaseError) {
//handle databaseError
}
});





private void collectPhoneNumbers(Map<String,Object> users) {

ArrayList<Long> phoneNumbers = new ArrayList<>();

//iterate through each user, ignoring their UID
for (Map.Entry<String, Object> entry : users.entrySet()){

//Get user map
Map singleUser = (Map) entry.getValue();
//Get phone field and append to list
phoneNumbers.add((Long) singleUser.get("namesd"));
}

System.out.println(phoneNumbers.toString());

mVoiceInputTv.setText("" + phoneNumbers);
}
}

我从另一个 stackflow 得到这个。在此之前,我尝试创建一个 for look。它成功了,但结果有 80% 的时间失败了。 (并不总是正确的)。

最佳答案

要解决这个问题,您需要使用 orderByChild() 方法查询您的数据库,如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
Query regnoQuery = usersRef.orderByChild("regno").equalsTo(regno);

其中 equalsTo()regno 参数是您要查找的实际注册号。然后将监听器附加到 regnoQuery 并在 dataSnapshot 对象上使用 getChildrenCount() 方法。如果 child 的数量是 noOfChildrens > 0 则执行您需要的代码集。

关于java - firebase如何获得 child 的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47296771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com