json - 访问Firebase中的用户uid

标签 json swift firebase firebase-realtime-database nosql

我有这个 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/

相关文章:

swift - 是否可以为 UIDatePicker.Mode 编写 Swift 扩展

android - Kotlin : FirebaseMessigingService is recive the message, 但未显示通知

iOS:Firebase 和 facebook 帐户工具包登录

javascript - 不断读取JSON数据库

javascript - 如何从这个 json 字符串中读取数据?

java - java.lang.String类型的值[{在android中无法转换为JSONObject

json - Kendo UI Grid JSON DataSource 未加载数据

ios - 在 Swift 中,如何快速设置实例变量?

ios - 如何遍历 JSON 坐标并将注释构建为一个函数?

reactjs - React-redux 与 re-base-firebase。好主意?