【问题标题】:Best data structuring practice for Note App FirestoreNote App Firestore 的最佳数据结构化实践
【发布时间】:2021-08-28 20:22:59
【问题描述】:

我正在创建一个笔记应用程序,当用户在笔记屏幕上时,它应该具有如下结构:

Title
   -Subtitle
        -Body Text
   -Subtitle
        -Body Text

等等等等。这些标题、副标题和正文文本中的每一个都存储在一个名为 NoteLine 的 POJO 中。现在,在我的 Firestore 数据库中,我的笔记是这样存储的:

(Collection) Notes
        -(Doc) User ID
            -(Collection) Own Notes
              -(Doc) Note Name
                -(Collection) Here is where I want to store my NoteLines.

我显示这些注释行的方式是通过 FirestoreRecyclerView。但是,当用户在便笺中添加新的正文行时,由于新的便笺行有时会高于先前创建的 NoteLines 并且因为我无法在集合中的所需位置专门添加 NoteLines,所以我不知道如何确保我的 RecyclerView 将新创建的正文显示在正确的位置。我正在考虑拥有一个 ID 系统(其中第一个 noteLine 的 ID 为 1,第二个为 2,等等)并按 ID 升序查询集合,但每次用户添加或删除 NoteLine 时更新每个 NoteLine 的 ID 也需要长。如果您需要有关我的代码的任何额外信息,请询问,我会提供。非常感谢。

【问题讨论】:

    标签: java android android-studio google-cloud-firestore


    【解决方案1】:

    建议不要更改 ID(更改为 1、2 等),而是在您创建的每个注释的 Firebase 中添加 creationDateupdationDate 字段。然后按您的updationDate 的降序获取笔记。

    注意:确保使用适当的对象将日期存储到 Firestore,而不是使用 String。如果您将它们存储为String,您将无法获得排序结果

    【讨论】:

    • 这有什么帮助?例如,用户可以在字幕中创建比在注释中较低的另一个字幕中的另一个正文更高的正文文本。根据您的解决方案,新的正文不会显示低于旧的正文而应该更高吗?
    • 对不起,我的错。您需要为此使用降序。更新了答案。
    • 除非我弄错了,否则我认为您不理解我的问题。我在问如何识别相对于它在笔记中其他笔记中的位置的笔记,并在recyclerview中以该顺序显示它,但看起来你给了我一种方法来根据它们何时对笔记进行排序上次更新。
    猜你喜欢
    • 2018-07-17
    • 2016-09-21
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多