我正在开发一个包含USER和EVENT的应用。 每个活动都有几个用户,每个用户都有几个活动。
在Firebase中,事件和用户都是“详细信息”键(请参阅下面的json),并且这些详细信息是重复的,因此所有事件用户都有事件的详细信息,所以在我的主要活动中我有一个回收站视图,显示那些事件很容易(对于用户在事件活动中列出的方式也是如此)。 要同步所有这些重复项,我使用firebase函数。
现在我想移动ti firestore,但我不确定它应该如何。
根据我的看法,我可以在事件文档中包含用户ID列表,然后使用user.id = current_user_id查询所有事件。 问题是我每个用户有更多的字段(费用,我想添加更多)所以要么每个用户都有子集合,要么有更复杂的列表。
我可以根据子集合ID查询事件吗?
我将不胜感激。
目前的Json:
{
"events" : {
"-L7v0K***" : {
"average" : 110,
"details" : {
"date" : {
"date" : 1520354933426
},
"location" : "Tel Aviv",
"name" : "test"
},
"items" : {},
"require_transactions" : [ {}],
"totalexpenses" : 220,
"users" : {
"ARKuwgrDHcNnXHoPlCgIBXOObjD3" : {
"details" : {
"uid" : "ARKuw***",
"userEmail" : "r***g@walla.com",
"username" : "R** G***"
},
"expenses" : 20
},
"pDFtk***" : {}
},
"-L84Gg***" : {}
}
},
"users" : {
"ARKuw***" : {
"details" : {
"uid" : "ARKuwg***",
"userEmail" : "r***g@walla.com",
"username" : "R** G***"
},
"events" : {
"-L7v0Kx***" : {
"date" : {
"date" : 1520354933426
},
"location" : "Tel Aviv",
"name" : "test"
},
"-L97_3***" : { }
},
"TAJK6***" : {}
}
}
}
答案 0 :(得分:0)
Firebase与firestore非常接近,我还使用firebase实时启动所有内容并移至firestore,以进行更复杂的查询。
因此,据我所知,您将拥有两个主要集合,您可以通过以下方式创建它们:
re= re.findall('<lyric><!\[CDATA\[(.*)\]\]></lyric>',XMLstring)
在内部用户中,您将拥有一个名为events的子集合来触发特定用户拥有的所有事件,因此它将如下所示:
firebase.firestore().collection('users')
firebase.firestore().collection('events')
例如,要进行查询以获取特定用户参加的所有事件,您可以键入:
firebase.firestore().collection('users').doc(userId).collection('events')
(在这里你可以做限制过滤器,&#39; where&#39;,byId ... by&#39; field等于&#39; ...所有这些都是文档)
这将返回他参加的集合中的所有eventsId。
记得按比例思考以降低成本。 如果您可以解释更多您需要的任务,我可以在解决方案中工作。 火库的文档很容易。