我在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]给用户打电话,这样就可以得到酒店。

10-07 20:57