Firebase iOS - 搜索具有特定ID值的词典的数据库

时间:2017-01-26 06:24:08

标签: ios swift firebase firebase-realtime-database

我在Firebase中只使用以下格式的iOS管理数据库:

if(SOLD == 1) break;

我的目标是运行一个Swift命令来返回一组'酒店'有一个特定的客人。例如,检查guest3应该返回酒店1,2和5以及相关数据。通常情况下,通常会有所作为:

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 ... ...

但不幸的是,它似乎与iOS文档中的Query filterQuery = databaseReference.orderByChild("type").equalTo(true);命令等效。那么在iOS Firebase库的边界完成此任务的最佳方法是什么?

*根据此博客帖子https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html,将来宾条目插入到来宾词典时,会自动生成随机ID。这似乎不直观,但必须通过为每个元素分配在插入时生成的唯一ID来确保唯一性。

2 个答案:

答案 0 :(得分:1)

你不能为用户准备另一套用户,然后每个用户都拥有它们所属的酒店吗?

沿着这些方向的东西

users:
    - guest1:
        - hotels:
            - hotel1
            - hotel3
            - etc. etc.

我怀疑必须通过每家酒店才能看到它是否包含某个用户。这样您就可以根据他们的[RandomID]来呼叫用户并以这种方式获得酒店。

答案 1 :(得分:0)

试试这段代码

let query = ref.queryOrderedByKey().queryEqual(toValue: guestID)
            query.observe(.childAdded, with: { (snapshot) in

            }
  

这里ref =参考酒店分店