首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Firebase中通过一次查询返回多个项目?

如何在Firebase中通过一次查询返回多个项目?
EN

Stack Overflow用户
提问于 2017-04-15 23:40:45
回答 1查看 232关注 0票数 1

我以前从未使用过NoSQL数据库,所以我对它们的工作原理有点困惑。我正在尝试创建一个关于城市景点的数据库。我对每个城市都有一个键和一个值。在每个城市下面,我想要有一个景点列表。

问题是每个景点都需要自己的钥匙。如果我给每个景点分配了自己的键,那么我如何使用一个查询返回一个城市的所有景点呢?难道我不需要为每个键运行一个查询来获取每个值吗?

我基本上是在尝试弄清楚如何设置我的数据库,这样我就可以在London上运行查询,并获得它下面列出的三个项。

EN

回答 1

Stack Overflow用户

发布于 2017-04-15 23:49:37

首先,你必须为你的吸引力创建一个POJO(Plain Old Java Object),其中包含描述等。变量需要与数据库中的键保持一致:

代码语言:javascript
复制
@IgnoreExtraProperties
public class Attraction{
    String name, description1, descrition2;
    //Other variables/keys

    String getName(){
        return this.name;
    }

    void setName(String name){
        this.name = name;
    }

    //Other getter/setter methods
    public Attraction(){}
}

接下来,您的数据库结构将如下所示:

代码语言:javascript
复制
City
---Attraction Name
------Description 1
------Description 2

然后,您可以简单地使用以下命令执行查询:

代码语言:javascript
复制
DatabaseReference ref = databaseReference.child("City").child("London");

然后将其与侦听器相结合,以获取吸引人的内容并将其存储在列表中:

代码语言:javascript
复制
List<Attraction> attractions = new ArrayList<>();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot val : dataSnapshot.getChildren()){
            Attraction attraction = val.getValue(Attraction.class);
            attraction.setName(val.getKey()); //This is because the key is the attraction name based on the structure
            attractions.add(attraction));
        }
        //After getting all of them in a list, return them
        return attractions; //use this if you want to return them as a List Object
        return attractions.toArray(new Attraction[attractions.size()]); //use this if you want to return it as an array
    }
    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
})

如果这对你有帮助,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43427985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档