我在Firebase中有一个完全通过iOS管理的数据库,其格式如下:hotels/ hotel1/ guests/ *[RandomID]:guest1 [RandomID]:guest2 [RandomID]:guest3 location/ address ... hotel2/ guests/ [RandomID]:guest3 [RandomID]:guest4 location/ address ... hotel3/ guests/ location/ address ... hotel4/ guests/ [RandomID]:guest4 [RandomID]:guest5 location/ address ... hotel5/ guests/ [RandomID]:guest3 location/ address ... ...
我的目标是运行一个快速的命令来返回一组有特定客人的“酒店”。例如,检查guest3应返回带有相关数据的hotels 1、2和5。沿着这条线的一些东西通常会起作用:Query filterQuery = databaseReference.orderByChild("type").equalTo(true);
但不幸的是,看起来iOS文档中没有与equalTo
命令等效的命令。那么,在iOS Firebase库的范围内完成此任务的最佳方法是什么?
*当guest条目插入到guests字典中时,将自动生成随机id,如本文所述:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html。它看起来不直观,但显然必须通过为每个元素分配在插入时生成的唯一ID来确保唯一性。
最佳答案
你就不能为用户再准备一套,然后为每个用户准备一套他们的价值所在的酒店吗?
沿着这条线的东西
users:
- guest1:
- hotels:
- hotel1
- hotel3
- etc. etc.
我怀疑去每家酒店看看是否有某个用户是件好事。这样你就可以根据用户的
[RandomID]
给用户打电话,这样就可以得到酒店。