我是Firebase的新手,正在尝试查询Firebase数据库。
我有一个火碱树,看起来像这样:
"mainData":
"users":
"user1ID" :
"name" : "John Mccgee"
"age" : 54
"hobbies" :
1 : "Playing Piano"
2 : "Programming"
3 : "Going to parties"
4 : "Hiking"
"user2ID" :
"name" : "Jack Jones"
"age" : 22
"hobbies" :
1 : "Playing Soccer"
2 : "Programming"
3 : "Telling Jokes"
"user3ID" :
...
我想在我的数据库中搜索"name"
,例如,以"Jac"开头,然后下载它"hobbies"
......我知道我可以按名称搜索,但是当我这样做时,Firebase 会下载"user2ID"
下的所有子项。
那么,当其他孩子搜索时,是否可以只下载"hobbies"
以下的孩子? ("name"
(
感谢您的阅读,当然也感谢您的回答。我希望这个问题足够清楚(:
适用于 iOS 的 Firebase 客户端始终会直接在您执行查询(或以其他方式附加侦听器(的级别下下载整个节点。这是经验丰富的 Firebaser(和文档(建议不要在树中混合实体类型的众多原因之一。
在当前模型中,如果不读取所有用户的爱好,就无法读取或查询用户名。为防止这种情况,请将爱好与其他用户数据分开:
"users":
"user1ID" :
"name" : "John Mccgee"
"age" : 54
"user2ID" :
"name" : "Jack Jones"
"age" : 22
"user3ID" :
...
"hobbies":
"user1ID" :
1 : "Playing Piano"
2 : "Programming"
3 : "Going to parties"
4 : "Hiking"
"user2ID" :
1 : "Playing Soccer"
2 : "Programming"
3 : "Telling Jokes"
"user3ID" :
...
您仍然必须执行针对数据库的读取操作:
- 查找给定其名称的用户的 UID
- 找到给定UID的用户的爱好