gpt4 book ai didi

java - 使用子属性和通配符的 Firebase 实时数据库查询

转载 作者:行者123 更新时间:2023-12-02 01:31:49 25 4
gpt4 key购买 nike

我有以下数据库结构用于将区域映射到相应的城市:

"Areas" : {
"Area_1" : {
"EnglishName" : "TheAreaNameInEnglish",
"GermanName" : "TheAreaNameInGerman",
"cityName" : "City_1"
},
"Area_2" : {
"EnglishName" : "TheAreaNameInEnglish",
"GermanName" : "TheAreaNameInGerman",
"cityName" : "City_1"
},
"Area_3" : {
"EnglishName" : "TheAreaNameInEnglish",
"GermanName" : "TheAreaNameInGerman",
"cityName" : "City_5"
},
--
--
}

现在,一旦用户选择 City_1,我想显示该城市的所有区域。在我们的例子中,仅限 Area_1 和 Area_2!

我正在尝试做这样的事情:

mAreasNodeReference.(WILD_CARD).orderByChild("cityName").equalTo("City_1").addListenerForSingleValueEvent..etc

如果可能的话,我怎样才能实现这样的查询?或者甚至我如何修改数据库结构(如果这会带来解决方案)?

最佳答案

您可以尝试以下操作:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Areas");
databaseReference.orderByChild("cityName").equalTo("City_1").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
String key = ds.getKey();
String germanName = ds.child("GermanName").getValue(String.class);
String englishName = ds.child("EnglishName").getValue(String.class);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});

这里,您的 dataSnapshot 位于节点 Areas 处,然后您在直接子级中循环,它将根据查询检索数据。

关于java - 使用子属性和通配符的 Firebase 实时数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918850/

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