我有这个 JSON 结构:
{
"Devices" : {
"1EJ8QmEQBJfBez7PMADbftCjVff1" : {
"Device1" : {
"Category" : "Others",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
},
"Device2" : {
"Category" : "Chairs",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
},
"Device3" : {
"Category" : "Others",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
}
},
"97PUAcUC5UYxLpBOLnC4yQjxiEf2" : {
"Device1" : {
"Category" : "Others",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
},
"Device2" : {
"Category" : "Books",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
},
"Device3" : {
"Category" : "Chairs",
"Description" : "",
"DeviceName" : "",
"ImageUrl" : ""
}
}
},
"UserProfile" : {
"1EJ8QmEQBJfBez7PMADbftCjVff1" : {
"city" : "",
"email" : "",
"name" : "",
"phone" : ""
},
"97PUAcUC5UYxLpBOLnC4yQjxiEf2" : {
"city" : "",
"email" : "",
"name" : "",
"phone" : ""
},
}
}
我想访问每个设备中的类别节点? 那可能吗? 因为我想检索具有相同类别的所有节点的数据!
let ref = FIRDatabase.database().reference().child("Devices")
ref.queryOrderedByChild("Category")
我已尝试访问设备!然后直接进入分类! 看来这不是正确的方法!
别告诉我我需要改变 JSON 的结构!
有什么方法可以访问用户 ID 吗?
最佳答案
在 NoSQL 数据库中,您通常需要针对应用程序所需的用例对数据进行建模。利用当前的数据结构,您可以有效地加载用户的设备。
为了有效地加载某个类别的设备,您还必须存储该信息。这是一种方法:
"Categories": {
"Others": {
"1EJ8QmEQBJfBez7PMADbftCjVff1_Device1": "1EJ8QmEQBJfBez7PMADbftCjVff1/Device1",
"1EJ8QmEQBJfBez7PMADbftCjVff1_Device3": "1EJ8QmEQBJfBez7PMADbftCjVff1/Device3",
"97PUAcUC5UYxLpBOLnC4yQjxiEf2_Device1": "97PUAcUC5UYxLpBOLnC4yQjxiEf2/Device1"
},
"Chairs": {
"1EJ8QmEQBJfBez7PMADbftCjVff1_Device2": "1EJ8QmEQBJfBez7PMADbftCjVff1/Device2",
"97PUAcUC5UYxLpBOLnC4yQjxiEf2_Device3": "97PUAcUC5UYxLpBOLnC4yQjxiEf2/Device3"
},
"Books": {
"97PUAcUC5UYxLpBOLnC4yQjxiEf2_Device2": "97PUAcUC5UYxLpBOLnC4yQjxiEf2/Device2"
}
}
所以上面的结构使用<uid>_<devicekey>
作为键,然后在/devices
下有该项目的路径作为它的值。
我建议阅读这篇关于 NoSQL data modeling 的精彩文章.
关于json - 访问Firebase中的用户uid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414599/