我已经开始测试Firebase,但我想不出关于索引的一件事。我正在根据所读内容(Firebase数据结构)创建一个结构,类似于带有用户和组的示例。JSON树如下所示:
{
"babies" : {
"-KQSVCXI-ZMz_lQ_Q906" : {
"name" : "Baby",
"parents" : {
"F0o8Gr5GC2SrakUYZpC20efcmk63" : true
}
},
"-KQSf4t9XQC3LnbsxLYS" : {
"name" : "Name2",
"parents" : {
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
}
}
}
}
而且我正在努力为父母生小孩-就像Firebase示例中的组中的成员一样。我正在使用以下方法在iOS应用程序中执行此操作:
self.babiesReference
.queryOrderedByChild("parents/\(user.uid)")
.queryEqualToValue(true)
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Print value
print(snapshot.value)
}
user.uid
当前用户的ID 在哪里。这可以正常工作,但唯一的问题仍然是:
使用未指定的索引。考虑在/ babies的安全规则中添加“ .indexOn”:“ parents /
S6aO6Dx4lgg6anW9S9hu7EJrhVg1”以提高性能
如何索引由用户ID呈现的“动态”子级?有办法吗?还是必须更改树结构?
谢谢。
对于这种类型的查询(通常,当您需要动态添加索引时),您可能需要设置一个反向索引。在您的情况下:
{
"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数据库)中相当普遍。
我已经开始测试Firebase,我不知道关于索引的一件事。我正在根据我在Firebase上读到的内容创建一个结构--类似于用户和组的示例。JSON树如下所示: 谢了。
问题内容: 我有一个像这样的字符串: 我把它变成一个数组: 该数组可以具有任意数量的元素,例如1、2、5等。 如何为多维数组分配一个特定的值,但是如何使用上面创建的I标识要插入的位置? 喜欢: 抱歉,这个问题令人困惑,但是我不知道如何更好地解释它 问题答案: 这是不平凡的,因为您想嵌套,但是应该这样:
问题内容: 最新的()利用TypeScript 2.1中添加的功能,即。这是一件好事,因为现在的输入是正确的,因为在更新之前,“不知道”的输入是合并的,而不是替换它。 同样,使用使得功能在允许输入方面非常严格。无法再将未在组件定义中定义的属性添加到中(的第二个泛型)。 但是,也很难定义动态更新处理程序。例如: 该函数将引发以下错误 即使类型是。 我无法找到一个解决方案,比拥有一个单独的其他和功能。
问题内容: 如果我有一个使用通用类型的类,例如 如果我知道使用的所有类型(例如本例中的情况),那么在设计时就可以直接键入所有内容: 如果从“我不知道类型”的“某处”获得对象列表会怎样?如何分配类型: 问题答案: Java泛型不是C ++模板。 Java泛型是编译时功能,而不是运行时功能。 这是Java泛型教程的链接。 这永远无法与Java一起使用: 您必须使用多态(例如,每个对象都实现一个已知的接
问题内容: 我有以下代码片段: 我将如何使用上面的代码来设置每个键的状态。 这是初始状态: 问题答案: 基本规则是: 我们可以使用 计算属性名称 概念,并使用任何 js表达式 动态计算对象属性名称。为此,我们需要将表达式放在里面。 像这样: 解: 按照您发布的代码,你需要把里面,就像这样: 或者我们可以先创建该对象,然后将该对象传递给函数,如下所示: 另外,您不需要。您可以直接使用新值更新状态变量
在jsdoc typedef中可以有动态键(道具名称)吗?我想象这会像下面的例子一样(这不起作用)。 传递typedef会使打字稿感到不安, “{bar: string; baz: number;}”类型的参数不能分配给“Foo”类型的参数。对象文字只能指定已知属性,“baz”在“foo”类型中不存在 输出: