从 Firebase 下载数据 WHERE 名称 = "someString"



我是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" :
...

您仍然必须执行针对数据库的读取操作:

  1. 查找给定其名称的用户的 UID
  2. 找到给定UID的用户的爱好

最新更新