Firebase 数据库从子节点 B 中指定的子节点 A 检索对象

Posted

技术标签:

【中文标题】Firebase 数据库从子节点 B 中指定的子节点 A 检索对象【英文标题】:Firebase Database retrieving objects from child node A specified in child node B 【发布时间】:2017-06-24 13:36:22 【问题描述】:

我想在我的 Firebase 数据库中实现一个浅层数据结构。就此而言,我有两个子节点。第一个子节点 (users) 的 userID 包含来自第二个子节点 (items) 的 itemID 列表。

如何使用用户列表中指定的项目列表中的项目填充UITableView/RecyclerView?每个登录用户都有自己的项目,我想从items 列表中检索它们。可以用 FirebaseUI 完成吗?

解决方案适用于任何受支持的平台,我只是想了解一下。


  "users" : 
    "97csAjE3dIZxZ5t3LbgxbaSOgxl2" :  // userID
      "TQjEnGjiRNsYL9" :  // each key is an itemID
        "etc" : "..."
      ,
      "VPHYi6xhrYsAwK" : 
        "etc" : "..."
      ,
      "WbnrFVDdfB9iJj" : 
        "etc" : "..."
      ,
      "xB9UgakhHkNzid" : 
        "etc" : "..."
      
    
  ,
  "items" : [ 
    "_id" : "vCG3furXeUnZpK", // Eventually I'll make this _id into the item key
    "etc" : "..."
  , 
    "_id" : "WbnrFVDdfB9iJj"
  , 
    "_id" : "xB9UgakhHkNzid"
  , 
    "_id" : "VPHYi6xhrYsAwK"
  , 
    "_id" : "TQjEnGjiRNsYL9"
  , 
    "_id" : "Bor6VhCyqxZHpb"
  , 
    "_id" : "iQnMmNy2fbrvYn"
   ]

【问题讨论】:

你能告诉我来自 firebase 的 json 数据结构吗? 请分享您所询问的实际 JSON 的 sn-p(作为文本,您可以通过单击 Firebase Database console 中的导出 JSON 来获得)。如果您展示您已经尝试过的内容,我们也将受到欢迎,以便我们可以将答案与此联系起来。 @JdPrajapati 我添加了一个 JSON sn-p @FrankvanPuffelen 我添加了一个 JSON sn-p 【参考方案1】:

首先获取当前用户的所有 itemID 并将 id 存储在某处。

let itemIDArray = [String]()

现在使用以下代码为每个项目 ID 获取项目详细信息

// database reference
ref.child("items").child(itemID).observeSingleEvent(of: .value, with: (snapshot) in


【讨论】:

【参考方案2】:

您可以使用带有子节点的 firebase 条件获取特定用户的数据。

database.child(Table).
         orderByChild("user/id")
        .equalTo("somevalue").

【讨论】:

以上是关于Firebase 数据库从子节点 B 中指定的子节点 A 检索对象的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何得到一XML文件中指定的节点属性值

高手帮忙:sql 里怎样递归判断父节点和子节

C#如何读取XML中指定的节点值?

JAVA 删除字符串中指定的字符

sh 使用package.json(engines.node)中指定的节点版本。使用jq和nvm。如果要安装版本,则会在缺少版本时提示。

用C语言实现 原字符串中指定的子串的的查找与替换代码?注:一定要有用户自己输入指定子串的那个过程!