2017-05-17 44 views
-1

我有火力数据库结构这样来获取特定用户火力地堡查询通过迅速在IOS他们的用户ID

"Users": { 
    "ghjghjFc1S3KO0y8yJwORdfgret": { //user ID 
       "name": "John" 
    } 

    "3uqWZJRFc1S3KO0y8yJwORTMtWC2": { //user ID 
       "name": "Smith" 
    } 

    "4SrHGdRFc1S8KO0y8yJwORTMtQAR": { //user ID 
       "name": "Alan" 
    } 

    "5fvxhaxFc1S8Kf0ygyJwORyMtFdy": { //user ID 
       "name": "Ben" 
    } 

} 

我有一个数组:usersToRetreive = [“5fvxhaxFc1S8Kf0ygyJwORyMtFdy”,“3uqWZJRFc1S3KO0y8yJwORTMtWC2”]

我想只检索那些userID在数组'userToRetreive'中提供的用户

Firebase是否支持这种类型的查询?如果是的话,我怎样才能使这个查询迅速?

+1

可能与谷歌搜索,例如,增加新的问题之前,启动? –

+0

我没有找到答案,这就是我在这里发布的原因。 –

回答

-1

只是做一个for循环在你的阵列,并分别获取每个用户,看不出大的问题是什么..

+1

因此,如果该数组中有1000个ID,那么它将调用firebase 1000次来获取该用户。这是不错的做法吗? –

+0

是的,没关系。如果你担心,那么只需获取所有用户并过滤列表客户端。 – MarksCode

+0

这是最简单但最糟糕的方式(想象一下,如果用户数以百万计或数组包含数千个ID)。我在想,应该有一个有效的方法来做到这一点。 –

1

是火力地堡不支持这种类型的查询。您必须在数据库引用上使用orderByChild()方法。此Firebase Youtube视频会经历如何做到这一点。

Common SQL Queries converted for the Firebase Database - The Firebase Database For SQL Developers #4

+0

感谢菲利普分享这个视频,这是非常有用的,但我找不到我的问题的解决方案。我只想给用户ID数组给firebase,它让我回到过滤的用户。我想避免客户端的长循环。 –