首页 > 解决方案 > 是否可以成为 Firebase 实时数据库结构的一部分,仅限本地

问题描述

我有一个 Firebase 实时数据库,其多对多结构类似于以下内容:

App {
   "users" : {
        "user123" : {
            "name" : "Mr Guy"
            ...
            "groups" : {
                "group567" : true,
                "group890" : true
            }
        }
    }
    "groups" : {
        "group567" : {
            "name" : "My Group 1",
            "other" : "some other random stuff",
            "logs" : {
                 "guid345" : {
                     "author" : "Miss Other",
                     "note" : "some change note"
                 },
                 "guid817" : { ... },
                 "guid018" : { ... },
                 ...
             },
             "members" : {
                 "user123" : true,
                 ...    
             }
        }
    }
}

这些映射到一些对象:

class User {
    private String name;
    private List<Groups> groups;
}

class Group {
    private String name;
    private Other other;
    private List<Log> logs;
}

class Log {
    private String author;
    private String note;
}

我现在要优化下载的数据量。(每个组的日志节点对用户来说并不重要,除了在用户处于活动状态时添加的项目 - 这意味着每个用户都会看到不同的日志列表。)

我知道如何忽略日志字段而不将其发送到 Firebase - 我有一个实现,我将日志分别保存在 sqlite 中,但不是手动执行此操作,有没有办法设置属性以保存在 Firebase 的本地副本中数据库但不将该部分同步到远程?这样我就可以避免单独的数据存储

标签: javaandroidfirebasefirebase-realtime-database

解决方案


Firebase 实时数据库对“仅限本地”数据没有意义。一切都在第一时间同步。

如果您想要一个本地关系数据库,请考虑查看Android Jetpack 的 Room - 它提供了您正在寻找的内容。


推荐阅读