我保存的关键字列表中的Firebase数据库查询

时间:2017-06-02 04:56:43

标签: android firebase firebase-realtime-database

enter image description here enter image description here

在我的Android应用程序中,我将产品列表存储在此结构中。但我需要检查该关键字是否包含我的搜索文本。我正在使用此查询

Query query= FirebaseDatabase.getInstance().getReference(productList)
  .orderByChild("keywords").startAt("bag").endAt("bag\uf8ff");

但它不起作用,请在这部分帮助我。否则请说出在我的应用FirebaseDB中保存关键字的正确结构。

1 个答案:

答案 0 :(得分:1)

Firebase实时数据库无法正常运行,“包含”就像您想要的匹配一样。相反,更好的建议方法是为每个“产品”提供一个关键字列表,而不是将其存储在逗号分隔的字符串中。

"productList":
{
    "id1":
    {
        "keywords":
        {
            "bag": true,
            "bang": true
        },
        ...
    }
}

Firebase Realtime Database Structure Guidelines进一步解释了这种结构。然后它使查询更好。然后,您可以执行以下操作以查找具有该关键字的产品...

Query query = FirebaseDatabase.getInstance().getReference(productList).orderByChild("keywords/bag").startAt("");