我在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来确保唯一性。
答案 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 =参考酒店分店