指定 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 使用的缓存。可用选项包括 MemoryLocalCache 和 PersistentLocalCache ,二者都有不同的配置选项。如果未指定,系统将默认使用 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 使用的缓存。可用选项包括 MemoryLocalCache
和 PersistentLocalCache
,每个都有不同的配置选项。
如果未指定,系统将默认使用 MemoryLocalCache
。
注意:同时设置此字段和 cacheSizeBytes
会在 SDK 初始化期间抛出异常。应改为使用 FirestoreLocalCache
对象中的配置来指定缓存大小。
签名:
localCache?: FirestoreLocalCache;
FirestoreSettings.ssl
是否在连接时使用 SSL。
签名:
ssl?: boolean;