Firebase实时数据库查询检索数组中的记录 - Android

时间:2018-03-13 12:49:04

标签: android firebase firebase-realtime-database

我有一个像下面这样的实时数据库结构。 用户有一些朋友。例如,我是Joe,我想要获取有朋友作为Joe的用户。

在这个例子中,Dave和Harry有一个叫Joe的朋友,所以我的查询应该是Dave和Harry,但不应该是Micheal。

如果没有在循环中获取数据,有没有办法做到这一点?

{
"Users": {
    "Joe": {
        "Friends": ["Dave","Harry","Micheal"]
    },
    "Dave": {
        "Friends": ["Joe","Jack","Brent"]
    },
    "Harry": {
        "Friends": ["Jack","Joe"]
    },
    "Micheal": {
        "Friends": ["Ken","Jack","Brent"]
    }
}

}

1 个答案:

答案 0 :(得分:1)

queue实时数据库无法跨Firebase成员执行查询,以查看它是否包含任何位置的特定值或添加/删除记录。 array文档建议不要使用数组。 Firebase建议不要使用数组的原因之一是它使安全规则无法编写。

与NoSQL数据库一样:如果您无法使用当前数据结构执行所需的用例,通常可以更改/扩展数据结构以允许用例。最佳做法是使用Firebase而不是数组。可能的数据库结构可能如下所示:

maps

您还可以查看here,了解更多信息。