gpt4 book ai didi

android - 结合排序和过滤的好方法 - Firebase 实时数据库结构

转载 作者:太空狗 更新时间:2023-10-29 13:53:23 25 4
gpt4 key购买 nike

我正在为 Firebase 设置一个实时数据库,遇到了一个问题,这让我质疑我的数据库结构。我目前的结构如下:

{
"events": {
$topics:{
$eventID:{
"title": "testTitle",
"description": "testDescription",
"startDateTime": "testStartDateTime",
"lat": "testLat",
"lng": "testLng",
"voteCt": "testVoteCt"
}
}
}

这背后的想法是我可以轻松地根据主题过滤数据。我遇到的问题是当我想从按 startDateTime 排序的所有 $topics 中获取事件时。从我读过的内容来看,这个给定的结构是不可能的。如果不是这种情况,请有人纠正我。

或者,我考虑按如下方式组织我的 Activity :

{
"events": {
$eventID:{
"title": "testTitle",
"description": "testDescription",
"startDateTime": "testStartDateTime",
"lat": "testLat",
"lng": "testLng",
"voteCt": "testVoteCt",
"topic": "testTopic"
}
}

通过这种方法,我可以在按 startDateTime 排序时聚合我的所有事件,但在按 startDateTime 排序时我也无法按主题过滤。我最后的希望只是让客户端读取所有事件(大量数据)并循环显示主题与应用过滤器匹配的事件。该解决方案有效,但做一些看起来如此简单的事情需要做很多工作。

有人能想出更好的解决方案吗?谢谢。

最佳答案

这个结构怎么样:

 "events": {
$eventID:{
"title": "testTitle",
"description": "testDescription",
"startDateTime": "testStartDateTime",
"lat": "testLat",
"lng": "testLng",
"voteCt": "testVoteCt",
"topic": "testTopic"
}
}

"event_topic":{
"testTopic1": {
"event_topic_id1":{
"event": "event id 1"
"startDateTime":"testStartDateTime"

}
}
}

现在,如果您想查询 testTopic1 并按 startDateTime 排序,只需监听 event_topic/testTopic1 并在 child_add 上按 startDateTime 对子项排序,对于每个 on child_add 事件,使用事件 ID 来查询事件详细信息。

关于android - 结合排序和过滤的好方法 - Firebase 实时数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com