如何在Firebase中使用单个查询返回多个项目?

时间:2017-04-15 15:40:45

标签: android firebase firebase-realtime-database nosql

我之前从未使用过NoSQL数据库,因此我对它们的工作方式感到有些困惑。我试图建立一个城市的吸引力数据库。我有一个关键和每个城市的价值。在每个城市下,我想要一个景点列表。

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

我基本上试图找出如何设置数据库,以便我可以在London上运行查询并获取其下列出的三个项目。

1 个答案:

答案 0 :(得分:1)

首先,你必须为你的Attraction创建一个包含描述等的POJO(普通旧Java对象)。变量需要与数据库中的键一致:

Numbers

接下来,您将拥有如下数据库结构:

@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(){}
}

然后您可以使用以下命令执行查询:

City
---Attraction Name
------Description 1
------Description 2

然后将其与听众结合以获得景点并将其存储在列表中:

DatabaseReference ref = databaseReference.child("City").child("London");

如果这有助于您,请告诉我。