Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Firebase实时数据库是否仅保留一个文件夹?_Firebase_Firebase Realtime Database - Fatal编程技术网

Firebase实时数据库是否仅保留一个文件夹?

Firebase实时数据库是否仅保留一个文件夹?,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在做一个项目,我使用Firebase实时数据库作为我的数据库。我的大部分信息都将联机,但我想让一些文件夹保持脱机状态。正如文件所说,如果我写 FirebaseDatabase.getInstance().setPersistenceEnabled(true) 我从数据库同步的任何数据都将被缓存,但这不是我想要的行为 假设我有一个应用程序,用户可以在其中创建游戏列表 我的数据库根目录上有两个文件夹:游戏和用户列表 在我的应用程序中,我从“games”文件夹中获取所有游戏,让用户选择其中一些游

我正在做一个项目,我使用Firebase实时数据库作为我的数据库。我的大部分信息都将联机,但我想让一些文件夹保持脱机状态。正如文件所说,如果我写

FirebaseDatabase.getInstance().setPersistenceEnabled(true)
我从数据库同步的任何数据都将被缓存,但这不是我想要的行为

假设我有一个应用程序,用户可以在其中创建游戏列表

我的数据库根目录上有两个文件夹:游戏和用户列表

在我的应用程序中,我从“games”文件夹中获取所有游戏,让用户选择其中一些游戏并保存在: 用户列表/(用户ID)/(列表名)

如果我将“setPersistenceEnable”设置为true,则所有数据同步都将保持脱机状态,包括“游戏”文件夹中的游戏

我只想让userlist/(userId)/下的文件夹保持脱机状态


是否有实现此行为的方法?

使用简单配置是不可能的。在默认设置中使用提供的API,您可以选择保留从查询中获得的任何数据,也可以选择根本不保留任何数据

如果只需要保留某些数据,则必须:

  • 禁用持久性,并自行安排仅持久化某些数据(可能在sqlite数据库中)
  • 启用持久性,但仅对某些查询使用它。其他查询可以通过禁用持久性的FirebaseApp的不同实例,或者直接使用RESTAPI

  • 使用简单的配置是不可能的。在默认设置中使用提供的API,您可以选择保留从查询中获得的任何数据,也可以选择根本不保留任何数据

    如果只需要保留某些数据,则必须:

  • 禁用持久性,并自行安排仅持久化某些数据(可能在sqlite数据库中)
  • 启用持久性,但仅对某些查询使用它。其他查询可以通过禁用持久性的FirebaseApp的不同实例,或者直接使用RESTAPI

  • 为了将来可能在这里登陆的人们。下面是我解决这个问题的方法:-将持久性启用设置为true。这将保持数据缓存,firebase将缓存高达10MB的缓存(根据您的使用情况,您的整个数据库可能少于10MB)。如果同步超过10 MB,firebase将擦除较少使用的数据。技巧来了:获取要保持脱机状态的文件夹的引用。调用(文件夹引用)。保持同步(true)。这将避免firebase删除您的文件夹,即使达到10MB缓存限制。供将来可能在此处登陆的用户使用。下面是我解决这个问题的方法:-将持久性启用设置为true。这将保持数据缓存,firebase将缓存高达10MB的缓存(根据您的使用情况,您的整个数据库可能少于10MB)。如果同步超过10 MB,firebase将擦除较少使用的数据。技巧来了:获取要保持脱机状态的文件夹的引用。调用(文件夹引用)。保持同步(true)。这将避免firebase擦除您的文件夹,即使达到10MB缓存限制。