Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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

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
Android 使用firestore,是否可以将脱机持久性配置为设置';关闭';在特定的文档中?_Android_Firebase_Kotlin_Google Cloud Firestore - Fatal编程技术网

Android 使用firestore,是否可以将脱机持久性配置为设置';关闭';在特定的文档中?

Android 使用firestore,是否可以将脱机持久性配置为设置';关闭';在特定的文档中?,android,firebase,kotlin,google-cloud-firestore,Android,Firebase,Kotlin,Google Cloud Firestore,我需要在Firestore中的某个文档中设置持久性;但所有其他文档都应使用默认配置实现。我已经执行了代码;但再次调用firestoreSettings会导致以下错误: java.lang.IllegalStateException:FirebaseFirestore已被删除 已启动,无法再更改其设置。你只能打电话 在调用上的任何其他方法之前,请执行setFirestoreSettings() FirebaseFirestore对象。 在com.google.firebase.firestore.

我需要在Firestore中的某个文档中设置持久性;但所有其他文档都应使用默认配置实现。我已经执行了代码;但再次调用
firestoreSettings
会导致以下错误:

java.lang.IllegalStateException:FirebaseFirestore已被删除 已启动,无法再更改其设置。你只能打电话 在调用上的任何其他方法之前,请执行setFirestoreSettings() FirebaseFirestore对象。 在com.google.firebase.firestore.firebaseforestore.setFirestoreSettings上(com.google.firebase:firebase-firestore@@17.0.5:140)


如何为特定文档设置
setPersistenceEnabled=false
,或者是否可能?提前感谢。

在执行任何其他操作之前,只能为整个Firestore客户端启用磁盘持久性。无法为特定集合、查询或文档启用/禁用磁盘持久性。

在执行任何其他操作之前,只能为整个Firestore客户端启用磁盘持久性。无法为特定集合、查询或文档启用/禁用它。

脱机持久化的工作方式是同步脱机时写入的每个文档的当前状态。它不会同步所有写入的整个历史记录。写操作的历史与此无关-重要的只是文档中的当前值。因此,启用持久性并不像您预期的那样昂贵


正如Frank所说,您不能选择性地选择只同步一些文档。要么完全关闭,要么打开。就个人而言,我认为您没有必要禁用它。

脱机持久化的工作方式是同步脱机时编写的每个文档的当前状态。它不会同步所有写入的整个历史记录。写操作的历史与此无关-重要的只是文档中的当前值。因此,启用持久性并不像您预期的那样昂贵


正如Frank所说,您不能选择性地选择只同步一些文档。要么完全关闭,要么打开。就个人而言,我不认为您有必要禁用它。

对于单个文档,您试图做什么需要禁用持久性?有一个文档用于实时跟踪驱动程序的位置。此文档有一个地质点字段。当驱动程序的internet连接脱机时,写入操作将被缓存,以便稍后与firestore同步。连接恢复并重新联机后,驾驶员可以发送不相关的旧地理点;因为应该在MapView上实时标记驱动程序。我认为,如果我可以选择一个文档来禁用持久性,那么所有累积的写入操作都不会一次发送。顺便说一下,我知道我只能在设备具有internet连接的情况下发送这些写入操作,而在设备连接离线的情况下忽略与firestore同步。firestore可以做这样的事情只是我的一个好奇。你想做什么,需要对单个文档禁用持久性?有一个文档用于实时跟踪驱动程序的位置。此文档有一个地质点字段。当驱动程序的internet连接脱机时,写入操作将被缓存,以便稍后与firestore同步。连接恢复并重新联机后,驾驶员可以发送不相关的旧地理点;因为应该在MapView上实时标记驱动程序。我认为,如果我可以选择一个文档来禁用持久性,那么所有累积的写入操作都不会一次发送。顺便说一下,我知道我只能在设备具有internet连接的情况下发送这些写入操作,而在设备连接离线的情况下忽略与firestore同步。firestore可以做这样的事情,这只是我的一个好奇。因此,如果我们有一个大的数据库(例如1-2GB),我们的web应用程序会将整个数据库下载到客户端的设备上,使其离线可用。对许多用户来说,这可能是过度的杀伤力。除了提示用户是否希望脱机使用数据(如果可能的话)之外,是否有其他最佳做法来解决此问题?只有您实际读取的文档将在本地持久化,但除此之外,您无法控制磁盘缓存。因此,如果我们有一个较大的数据库(例如1-2GB),我们的web应用程序会将整个数据库下载到客户端的设备上,使其脱机可用。对许多用户来说,这可能是过度的杀伤力。除了提示(如果可能的话)用户是否希望脱机使用数据之外,是否还有其他最佳做法来解决此问题?只有您实际读取的文档将在本地持久化,但除此之外,您无法控制磁盘缓存。道格:在我的情况下,我知道这不是正确的用例,但是我有需要投入生产的代码,所以我禁用了持久性,作为解决慢速查询问题()的一种方法。理想情况下,只有一个活动需要解决方案。所以我的问题是:有没有其他解决慢查询问题的方法?@doug stevenson一种情况可能是,如果我在某个集合中存储一些关键信息(账单、付款、密钥等)。doug:在我的情况下,我知道这不是正确的使用情况,但是我有需要投入生产的代码,所以我禁用了持久性,作为解决慢速查询问题()的一种方法。理想情况下,只有一个活动需要解决方案。所以我的问题是:对于慢查询问题,还有其他解决方案吗?@doug stevenson一个例子是,如果我在某个集合中存储一些关键信息(账单、付款、密钥等)。