Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Android Room数据库与Firebase实时数据库链接_Android_Database_Firebase Realtime Database_Database Connection_Android Room - Fatal编程技术网

将Android Room数据库与Firebase实时数据库链接

将Android Room数据库与Firebase实时数据库链接,android,database,firebase-realtime-database,database-connection,android-room,Android,Database,Firebase Realtime Database,Database Connection,Android Room,我正在使用安卓房间数据库为我的安卓应用程序创建数据库。它在本地非常适合我,但我无法链接到服务器使其在线。 我正在使用Firebase进行身份验证。我正在尝试使用Firebase Realtime Database保存房间中的整个数据库对象,并根据经过身份验证的用户在应用程序启动时加载正确的数据库 我想问一下这是否可能?如果我可以保存整个房间数据库实例,或者我需要在Firebase上重新创建数据库并逐项保存数据 我似乎也无法访问Room的数据库数据,因为当我获得AppDatabase类的对象时,它

我正在使用安卓房间数据库为我的安卓应用程序创建数据库。它在本地非常适合我,但我无法链接到服务器使其在线。 我正在使用Firebase进行身份验证。我正在尝试使用Firebase Realtime Database保存房间中的整个数据库对象,并根据经过身份验证的用户在应用程序启动时加载正确的数据库

我想问一下这是否可能?如果我可以保存整个房间数据库实例,或者我需要在Firebase上重新创建数据库并逐项保存数据

我似乎也无法访问Room的数据库数据,因为当我获得AppDatabase类的对象时,它实际上并没有传递数据。我不知道应该如何做相反的事情,将稍后从Firebase检索到的数据分配给保存的本地数据


另外,如果Firebase无法使用,您是否建议我使用其他服务器来处理Room

经过大量的研究和拼命寻找答案,我得出以下结论:

  • Firebase已经有了一种直接的方法来创建数据库并在线托管它。(我已经创建了我的数据库,所以我试图节省时间,但使用Firebase实时数据库从头开始创建数据库要快得多)
  • 如果您计划在本地和脱机保存数据库(截至发布日期),则房间数据库非常完美

我创建的类似项目使用

  • 登录用户的Firebase身份验证
  • 使用Room将用户注释保存并缓存到sql lite数据库
  • 将用户注释保存到firebase数据库

  • ✍️ 简单的笔记制作应用程序使用Sqllite Room我认为他们不需要将您的房间数据库连接到Firebase实时数据库,因为,好的,首先尝试解决这个问题,为什么我们使用房间数据库?因为当我们没有互联网时,我们可以从房间数据库获取数据,不需要网络。。。Firebase还提供脱机模式,它还可以持久保存数据,那么我们为什么要使用Room数据库呢?。。希望你能明白这一点。

    记住,Firebase实时数据库还提供了持久性(离线)存储,与Room数据库一样无缝工作。在应用程序类[Manifest file->Application->android:name]中添加下面的行以立即启动此过程<代码>/*启用磁盘持久性*/FirebaseDatabase.getInstance().setPersistenceEnabled(true)@PravyNandas是的,我发现这也是一个选择,它对我非常有用,因为我需要在线和离线合作!然而,当我只需要一个离线数据库时,这个房间对我来说更容易使用!谢谢你指出:)我有一个类似的任务。我将使用房间作为本地存储,但我也需要同步/备份功能。为此,我将在Firebase中使用复制日志。这是一个包含房间数据“平面”表示的单一集合。如果您只需要平面表示,这绝对是一个不错的选择。谢谢分享!嗨@PierreGhaly,我也遇到了同样的情况,我看到了你的帖子。目前,我正在使用RoomSQL数据库、DAO数据库、RxJava数据库和LiveData。当你转到Firebase时,你是如何处理这个问题的?嗨,Pierre Ghaly!我已经搜索了几个星期如何将Android Room数据库和Firebase实时数据库结合起来,但我只找到了单独的例子。你能就如何完成这项任务提出一些建议吗?嗨,阿利顿!根据我的研究(我不确定我是否仍然是最新的),但没有办法把它们联系在一起。正如我所做的(根据我下面的回答),我刚刚使用Firebase从头开始重新创建了数据库。欢迎来到stackoverflow,请通读问题并接受答案以了解更多详细信息。我检查了您的代码,我认为它有点错。您正在将数据从
    视图控制器
    层保存到Firebase RTDB。不应更改为类似于
    FirebaseRepository
    的内容。我希望您能更新您的代码,并使其成为其他人的重要参考:)