您如何返回特定键值所在的孩子的名字?
使用Firebases中的示例' docs ...
// Assume we have the following data in the Database:
{
"name": {
"first": "Ada",
"last": "Lovelace"
}
}
我将如何返回" name"只使用键值" Ada"在我的代码中?
答案 0 :(得分:0)
Firebase实时数据库没有"返回"任何东西。您查询它,它会生成与您的查询匹配的结果。这不是一个查询,它只为您提供某些查询中匹配数据的某个键的名称。当您在某个位置进行查询或收听时,您最终会得到一个可以检查的DataSnapshot。该快照将包含与您的查询匹配的整个结构。
最重要的是,在文档的情况下,"首先"甚至不能保证是独一无二的。可能有许多位置具有第一个=" Ada"。如果您对此进行查询,则会在查询结果中获得所有条记录。然后由客户端过滤所有这些以找到正确的。
如果您想假设,在该示例中,名字(例如" Ada")实际上是唯一的,并且您希望使用它来获取最小的快照,只有存储它的密钥,您可以将第一个名称字符串的反向映射维护回键的字符串。您必须在数据库的不同位置维护该映射。所以如果你认为" Ada"实际上必须是同一位置的一组数据中的唯一子值,您可以在数据库中拥有另一个维护此反向映射的位置:
"first_names": {
"Ada": "name"
}
然后你可以简单地查询位置" / first_names / Ada"包含值" name"。