我的Firebase实时数据库中有两个表:帖子和用户。结构是:
Option[Seq[A]
现在,我像这样在loadData()函数中获取数据:
liftOptionItem[A]
这很好。但是,我想运行第二个查询来获取用户信息(userName,userProfilePicURL),以便也可以显示该信息,因为我现在所拥有的只是userID。我这样做如下:
users
-- userID
---- userName
---- userProfilePicURL
posts
-- postID
---- postTimeStamp
---- postTitle
---- postContent
虽然发生了什么,但是它获得了用户信息并正确显示,但是我的第一个查询的时间顺序却被破坏了。它显示了同一用户的所有帖子,因此它们是按userID而不是postTimeStamp排序的。有解决办法吗?还是我需要采取完全不同的方法?
更新:到目前为止我发现的东西 当我执行print(dict)时,所有内容均以正确的顺序显示。因此,该错误将在以后发生。当我执行dump(self.posts)(包含所有帖子的数组)时,它们以错误的顺序显示。
我的猜测是,不是按照第一个查询的要求按时间顺序追加项目,而是根据userID添加项目,因此应用程序会按每个userID提取所有帖子。但是我不知道为什么会这样,我也无法在Internet上找到它。
答案 0 :(得分:0)
原因:
解决方案: