当前位置: 首页 > 知识库问答 >
问题:

Firebase.Indexon动态键

戚奇略
2023-03-14

我已经开始测试Firebase,我不知道关于索引的一件事。我正在根据我在Firebase上读到的内容创建一个结构--类似于用户和组的示例。JSON树如下所示:

{
  "babies" : {
    "-KQSVCXI-ZMz_lQ_Q906" : {
      "name" : "Baby",
      "parents" : {
        "F0o8Gr5GC2SrakUYZpC20efcmk63" : true
      }
    },
    "-KQSf4t9XQC3LnbsxLYS" : {
      "name" : "Name2",
      "parents" : {
        "S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
      }
    }
  }
}
self.babiesReference
                .queryOrderedByChild("parents/\(user.uid)")
                .queryEqualToValue(true)
                .observeSingleEventOfType(.Value, withBlock: { (snapshot) in
                
                // Print value
                print(snapshot.value)
                
            }

谢了。

共有1个答案

侯英达
2023-03-14

对于这种类型的查询(通常,当您需要动态添加索引时),您可能需要设置一个倒排索引。在您的情况下:

{
  "babies" : {
    "-KQSVCXI-ZMz_lQ_Q906" : {
      "name" : "Baby",
      "parents" : {
        "F0o8Gr5GC2SrakUYZpC20efcmk63" : true
      }
    },
    "-KQSf4t9XQC3LnbsxLYS" : {
      "name" : "Name2",
      "parents" : {
        "S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
      }
    }
  },
  "parents": {
    "F0o8Gr5GC2SrakUYZpC20efcmk63": {
      "babies": {
        "-KQSVCXI-ZMz_lQ_Q906": true
      }
    },
    "S6aO6Dx4lgg6anW9S9hu7EJrhVg1": {
      "babies": {
        "-KQSf4t9XQC3LnbsxLYS": true
      }
    }
  }
}

这种双向链接在Firebase(以及许多类似的NoSQL数据库)中相当常见。

 类似资料:
  • 读取用户动态信息 调用地址 http://api.bilibili.cn/dynamic 需要 App Key 并验证登录状态(Access key) 参数 字段 必选 类型 说明 include_types false string 选择显示的类型 多个间以半角逗号分隔 exclude_types false string 忽略特定的类型的动态 page false int 结果分页选择 默认为

  • 在libGDX Box2D中,我有一个DynamicBody“身体”和静态身体“锚”,它的关节从“枢轴关节点”开始,身体可以围绕“枢轴点”转动,工作完美(位置2)。 但我想把“身体”旋转到特定的角度,当模拟运行,重力=10等时,身体转向底部。当我点击一个按钮时,我想将身体转到“myNewAngle”位置,如图所示(位置1) 我的问题是,我的身体正在转动它的原点(位置3),我想把它转到枢轴点,我设置

  • 使用配置管理系统经常有一种需求,可能要在其他的软件系统中保存自己的 inventory 配置信息. Ansible 本身通过基于文本的方式来记录 inventory 配置信息,这在前面已介绍过(详见 Inventory文件 ). 除此之外,Ansible 也支持用其他方式保存配置信息. 在其他软件系统保存配置信息的例子有: 1, 从云端拉取 inventory 2, LDAP(Lightweig

  • Bluemix上的Node-RED,使用语言翻译器节点,留档如下; 源和目标语言参数可以通过编辑器面板进行配置,也可以使用以下属性msg中的语言代码进行动态设置。加味精。德斯特朗。 设置msg.srclang 是否可以使用Bluemix上的语言转换器节点动态设置源/目标语言值? 谢谢, 罗南

  • 运行已经做好的博客框架, 会发现一个问题, 只有一个主页的空盒子, 而大部分时候我们希望能够让每篇博客文章都有一个独立的页面. 我第一个想到的方法是给每篇博客文章加一个view函数逻辑, 然后设置一个独立的url(我不知道语言比如PHP, 或者web框架rail等是如果解决的, 我是第一次仔细的学习web框架, 也没有前端开发经验), 但是这种方法耦合性太强, 而且用户不友好, 缺点非常多 Dja

  • 动态 SQL MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。 如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号。动态 SQL 可以彻底处理这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语 言来改进这种情形,这种语言可以被用在任意