FirestoreSettings interface

指定 Cloud Firestore 实例的自定义配置。您必须在调用任何其他方法之前设置这些变量。

签名

export declare interface FirestoreSettings 

属性

属性 类型 说明
cacheSizeBytes 数字 注意:在未来的主要版本中,此字段将弃用。请改用 cache 字段来指定缓存大小和其他缓存配置。磁盘上数据的大致缓存大小阈值。如果缓存大小超过此上限,Firestore 将开始移除最近未使用的数据。此大小并不能保证缓存的大小不会超过该大小,只有在缓存超过指定大小时,系统才会尝试清理。默认值为 40 MB。阈值必须设置为至少 1 MB,并且可以设置为 CACHE_SIZE_UNLIMITED 以停用垃圾回收。
experimentalAutoDetectLongPolling 布尔值 配置 SDK 的底层传输 (WebChannel),以自动检测是否应使用长轮询。它与 experimentalForceLongPolling 非常相似,但只会在必要时使用长轮询。自 2019 年推出以来,该设置的默认值一直是 false,而在 Firebase JavaScript SDK v9.22.0 中,该设置的默认值在 2023 年 5 月更改为 true。也就是说,长轮询的自动检测现在默认处于启用状态。如需停用该功能,请将此设置设为 false,然后提交 GitHub 问题,分享促使您停用长轮询自动检测的问题。此设置无法在 Node.js 环境中使用。
experimentalForceLongPolling 布尔值 强制 SDK 的底层网络传输 (WebChannel) 使用长轮询。在后端发送数据后,来自后端的每个响应都会立即关闭(默认情况下,响应会保持打开状态,以防后端有更多数据要发送)。这样可避免某些代理、杀毒软件等软件出现不兼容问题,从而无限期地正确缓冲流量。不过,使用此选项会导致性能出现一定程度的下降。此设置不能与 experimentalAutoDetectLongPolling 一起使用,并且可能会在未来的版本中移除。如果您发现自己正在使用它来解决特定的网络可靠性问题,请在 https://github.com/firebase/firebase-js-sdk/issues/1674 中告诉我们。此设置无法在 Node.js 环境中使用。
experimentalLongPollingOptions ExperimentalLongPollingOptions 使用长轮询时配置 SDK 底层网络传输 (WebChannel) 的选项。仅当 experimentalForceLongPolling 为 true 或 experimentalAutoDetectLongPolling 为 true 且自动检测功能确定需要长轮询时,才能使用这些选项。否则,这些选项将不起作用。
主机 字符串 要连接的主机名。
ignoreUndefinedProperties 布尔值 是否在对象序列化期间跳过设置为 undefined 的嵌套属性。如果设置为 true,系统会跳过这些属性,并且不会写入 Firestore。如果设置为 false 或省略,SDK 会在遇到 undefined 类型的属性时抛出异常。
localCache FirestoreLocalCache 指定 SDK 使用的缓存。可用选项包括 MemoryLocalCachePersistentLocalCache,二者都有不同的配置选项。如果未指定,系统将默认使用 MemoryLocalCache注意:在 SDK 初始化期间,同时设置此字段和 cacheSizeBytes 会抛出异常。应改为使用 FirestoreLocalCache 对象中的配置来指定缓存大小。
SSL 布尔值 是否在连接时使用 SSL。

FirestoreSettings.cacheSizeBytes

注意:在未来的主要版本中,此字段将弃用。请改用 cache 字段指定缓存大小和其他缓存配置。

磁盘上数据的大致缓存大小阈值。如果缓存大小超过此上限,Firestore 将开始移除最近未使用的数据。大小并不能保证缓存的大小不会超过该大小,只有在缓存超过指定大小时才会尝试清理。

默认值为 40 MB。阈值必须设置为至少 1 MB,并且可以设置为 CACHE_SIZE_UNLIMITED 以停用垃圾回收。

签名

cacheSizeBytes?: number;

FirestoreSettings.experimentalAutoDetectLongPolling

配置 SDK 的底层传输 (WebChannel),以自动检测是否应使用长轮询。这与 experimentalForceLongPolling 非常相似,但仅在需要时使用长轮询。

自 2019 年推出以来,此设置的默认值一直为 false,而在 Firebase JavaScript SDK v9.22.0 中,此设置的默认值已于 2023 年 5 月更改为 true。也就是说,长轮询的自动检测现在默认处于启用状态。如需停用该功能,请将此设置设为 false,然后提交 GitHub 问题,分享促使您停用长轮询自动检测的问题。

此设置无法在 Node.js 环境中使用。

签名

experimentalAutoDetectLongPolling?: boolean;

FirestoreSettings.experimentalForceLongPolling

强制 SDK 的底层网络传输 (WebChannel) 使用长轮询。在后端发送数据后,来自后端的每个响应都会立即关闭(默认情况下,响应会保持打开状态,以防后端有更多数据要发送)。这样可避免某些代理、杀毒软件等软件出现不兼容问题,从而无限期地正确缓冲流量。不过,使用此选项会导致性能出现一定程度的下降。

此设置无法与 experimentalAutoDetectLongPolling 搭配使用,并可能会在未来的版本中移除。如果您发现自己正在使用该工具来解决特定的网络可靠性问题,请访问 https://github.com/firebase/firebase-js-sdk/issues/1674,告诉我们该问题。

此设置无法在 Node.js 环境中使用。

签名

experimentalForceLongPolling?: boolean;

FirestoreSettings.experimentalLongPollingOptions

用于配置使用长轮询时 SDK 底层网络传输 (WebChannel) 的选项。

仅当 experimentalForceLongPolling 为 true 或 experimentalAutoDetectLongPolling 为 true 且自动检测系统确定需要进行长轮询时,才会使用这些选项。否则,这些选项将不起作用。

签名

experimentalLongPollingOptions?: ExperimentalLongPollingOptions;

FirestoreSettings.host

要连接的主机名。

签名

host?: string;

FirestoreSettings.ignoreUndefinedProperties

是否在对象序列化期间跳过设置为 undefined 的嵌套属性。如果设置为 true,系统会跳过这些属性,并且不会写入 Firestore。如果设置为 false 或省略,SDK 会在遇到 undefined 类型的属性时抛出异常。

签名

ignoreUndefinedProperties?: boolean;

FirestoreSettings.localCache

指定 SDK 使用的缓存。可用选项包括 MemoryLocalCachePersistentLocalCache,每个都有不同的配置选项。

如果未指定,系统将默认使用 MemoryLocalCache

注意:同时设置此字段和 cacheSizeBytes 会在 SDK 初始化期间抛出异常。应改为使用 FirestoreLocalCache 对象中的配置来指定缓存大小。

签名

localCache?: FirestoreLocalCache;

FirestoreSettings.ssl

是否在连接时使用 SSL。

签名

ssl?: boolean;