【发布时间】:2017-03-19 18:01:36
【问题描述】:
我正在创建一个 Android 应用程序,但遇到了一个问题。为了解释问题,我想展示我的数据库结构
{
"EXlzg1COUbOhQjwPCGbS1NRdp5H3" : {
"Contacts" : {
"Contact1" : value (Contact number)
"Contact2" : value
"Contact3" : value
},
"name" : "Sagar Khan",
"phone" : 7276273667
},
"OLm7VWsMcGQpterECyhJ8YTSPna2" : {
"Contacts" : {
"Contact1" : value
"Contact2" : value
"Contact3" : value
},
"name" : "Sameer",
"phone" : 8412914728
},
"TXanCkqtB5PdEogtv8Dzw8y1ngw1" : {
""Contacts" : {
"Contact1" : value
"Contact2" : value
"Contact3" : value
},
"name" : "Harish",
"phone" : 7020743544
},
"qnDVoc72nXa8XvOH1L39VvqFzKL2" : {
"Contacts" : {
"Contact1" : value
"Contact2" : value
"Contact3" : value
},
"name" : "Harish Shinde"
"phone": 8149870822
}
}
这是一个非常短的结构,实际的结构很大 现在我想做的是只获取当前用户节点中存在联系电话的那些用户,并将这些用户显示在 Android 列表中。
例如:
ID 为 EXlzg1COUbOhQjwPCGbS1NRdp5H3 的用户 1 有 3 个联系人
"EXlzg1COUbOhQjwPCGbS1NRdp5H3" : {
"Contacts" : {
"Sameer" : 8412914728 (Contact number)
"Contact2" : value
"Contact3" : value
},
"name" : "Sagar Khan",
"phone" : 7276273667
},
现在,当我从我的数据库中获取用户列表并将其显示在我的 Android 应用程序列表中时,我希望只添加那些其联系人号码存在于用户 1 联系人中的用户。
我的问题是我真的不知道如何做到这一点,因为我是 Android 开发和 Firebase 的新手。 Firebase的读写基础我很清楚,但是这样的操作,我不知道怎么做。
我搜索了很多,但找不到任何解决方案或示例。详细的描述对我来说非常好。 ;) 提前致谢。
【问题讨论】:
-
为
Contacts的用户创建一个单独的父节点会更容易,例如Contact -> (User ID) -> contact1..etc。您可以更轻松地检索数据,并且用户可以存储任意数量的联系人。如果您有兴趣更改当前的数据库结构,我可以发布代码 sn-p 这种方法将如何进行。 -
是的,请...但是我将如何访问用户节点的属性?
-
当我将获取用户列表并将其显示在 android 列表中以及当用户单击列表中的特定项目时,进一步的操作将需要访问用户下的选定用户的属性节点......我希望你能理解我想说的话
-
您的用户节点将是相同的,假设 ID 为
EXlzg1COUbOhQjwPCGbS1NRdp5H3的用户将在Users下有一个子节点(包含姓名和电话号码),该用户的联系人将是使用用户 IDEXlzg1COUbOhQjwPCGbS1NRdp5H3再次存储在Contacts节点中。所以基本上会有两个父节点Users和Contacts。你明白我想说的吗? -
有什么方法可以通过搜索特定用户的联系电话来获取特定用户的 ID?
标签: android firebase firebase-realtime-database