我试图从firebase获取一些数据。在我的对象中,我有
Recent
|_UniversitId
|_objectiId1
| |_ userId:1
| |_ timestamp:143242344
|_objectiId2
|_ userId:1
|_ timestamp:143243222
我的查询路径是http://firbasedbname.com/Recent/UniversityId
。我需要获取userId id等于1的条目,并按时间戳设置。我尝试了以下内容,
FIRDatabaseQuery *query = [[firebase queryOrderedByChild:@"userId"] queryEqualToValue:@"1"];
这正确地提取了我的用户。但是有没有办法按时间戳订购此套装。为此,我尝试了另一个queryOrderedByChild
。但它说它只能使用一次。我该如何解决这个问题?
答案 0 :(得分:3)
queryOrderedByChild只能使用一次。 解决方法是
|_objectiId1
| |_ userId:1
| |_ timestamp:143242344
| |_ userId_timestamp:1_143242344
|_objectiId2
|_ userId:1
|_ timestamp:143243222
|_ userId_timestamp:1_143243222
然后尝试:
FIRDatabaseQuery *query = [[firebase queryOrderedByChild:@"userId_timestamp"] queryEqualToValue:@"1_143242344"];
查看https://youtu.be/sKFLI5FOOHs?t=541
<小时/> 另一种方法是:
|_objectiId1
|_ userId1:
| |_ objectId11:143242344
| |_ objectId12:143243222
|_ userId2:
然后
查询路径为http://firbasedbname.com/Recent/UniversityId/userId1
然后按值排序