指定 Cloud Firestore 实例的自定义配置。您必须在调用任何其他方法之前设置这些。
签名:
export declare interface FirestoreSettings
特性
财产 | 类型 | 描述 |
---|---|---|
缓存大小字节 | 数字 | 注意:该字段将在未来的主要版本中被弃用。使用cache 字段来指定缓存大小和其他缓存配置。磁盘上数据的近似缓存大小阈值。如果缓存增长超过此大小,Firestore 将开始删除最近未使用的数据。该大小并不能保证缓存将保持在该大小以下,只是如果缓存超过给定大小,则会尝试清理。默认值为 40 MB。该阈值必须至少设置为 1 MB,并且可以设置为CACHE_SIZE_UNLIMITED 以禁用垃圾收集。 |
实验性自动检测长轮询 | 布尔值 | 配置 SDK 的底层传输 (WebChannel) 以自动检测是否应使用长轮询。这与experimentalForceLongPolling 非常相似,但仅在需要时使用长轮询。自 2019 年推出以来默认值一直为false ,此设置的默认值于 2023 年 5 月在 Firebase JavaScript SDK v9.22.0 中更改为true 。也就是说,现在默认启用长轮询的自动检测。要禁用它,请将此设置设置为false ,并请打开 GitHub 问题来分享促使您禁用长轮询自动检测的问题。此设置不能在 Node.js 环境中使用。 |
实验性强制长轮询 | 布尔值 | 强制 SDK 的底层网络传输 (WebChannel) 使用长轮询。来自后端的每个响应将在后端发送数据后立即关闭(默认情况下,响应保持打开状态,以防后端有更多数据要发送)。这可以避免与某些代理、防病毒软件等不兼容的问题,从而错误地无限期地缓冲流量。但使用此选项会导致一些性能下降。此设置不能与experimentalAutoDetectLongPolling 一起使用,并且可能会在将来的版本中删除。如果您发现自己使用它来解决特定的网络可靠性问题,请在 https://github.com/firebase/firebase-js-sdk/issues/1674 中告诉我们。此设置不能在 Node.js 环境中使用。 |
实验性长轮询选项 | 实验性长轮询选项 | 使用长轮询时配置 SDK 底层网络传输 (WebChannel) 的选项。仅当experimentalForceLongPolling 为true 或experimentalAutoDetectLongPolling 为true 并且自动检测确定需要长轮询时,才使用这些选项。否则,这些选项无效。 |
主持人 | 细绳 | 要连接的主机名。 |
忽略未定义的属性 | 布尔值 | 是否跳过在对象序列化期间设置为undefined 嵌套属性。如果设置为true ,这些属性将被跳过并且不会写入 Firestore。如果设置为false 或省略,SDK 在遇到类型为undefined 属性时会引发异常。 |
本地缓存 | Firestore本地缓存 | 指定SDK使用的缓存。可用选项有MemoryLocalCache 和PersistentLocalCache ,每个选项都有不同的配置选项。未指定时,默认使用MemoryLocalCache 。注意:同时设置该字段和cacheSizeBytes 会在SDK初始化时抛出异常。相反,使用FirestoreLocalCache 对象中的配置来指定缓存大小。 |
安全套接字层 | 布尔值 | 连接时是否使用SSL。 |
FirestoreSettings.cacheSizeBytes
注意:该字段将在未来的主要版本中被弃用。使用cache
字段来指定缓存大小和其他缓存配置。
磁盘上数据的近似缓存大小阈值。如果缓存增长超过此大小,Firestore 将开始删除最近未使用的数据。该大小并不能保证缓存将保持在该大小以下,只是如果缓存超过给定大小,则会尝试清理。
默认值为 40 MB。该阈值必须至少设置为 1 MB,并且可以设置为CACHE_SIZE_UNLIMITED
以禁用垃圾收集。
签名:
cacheSizeBytes?: number;
FirestoreSettings.experimentalAutoDetectLongPolling
配置 SDK 的底层传输 (WebChannel) 以自动检测是否应使用长轮询。这与experimentalForceLongPolling
非常相似,但仅在需要时才使用长轮询。
自 2019 年推出以来默认值一直为false
,此设置的默认值于 2023 年 5 月在 Firebase JavaScript SDK v9.22.0 中更改为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;