指定 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) 使用長插功能。所有來自後端的回應都會在後端傳送資料後立即關閉。因為後端有更多資料可供傳送,預設回應將保持開啟狀態。這樣可以避免特定 Proxy、防毒軟體等,避免讓流量無限期緩衝處理而發生不相容的問題。使用這個選項會導致效能部分降低。這項設定無法與 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 。注意:如果同時設定這個欄位和 cacheSizeBytes ,系統會在 SDK 初始化期間擲回例外狀況。請改用 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 的 2023 年 5 月,這項設定的預設值已變更為 true
。也就是說,現在系統預設會啟用長時間輪詢自動偵測功能。如要停用這項功能,請設為 false
,然後開啟 GitHub 問題,分享您停用長時間輪詢自動偵測功能的原因。
這項設定無法用於 Node.js 環境。
簽名:
experimentalAutoDetectLongPolling?: boolean;
FirestoreSettings.experimentalForceLongPolling
強制 SDK 的基礎網路傳輸 (WebChannel) 使用長插功能。所有來自後端的回應都會在後端傳送資料後立即關閉。因為後端有更多資料可供傳送,預設回應將保持開啟狀態。這樣可以避免特定 Proxy、防毒軟體等,避免讓流量無限期緩衝處理而發生不相容的問題。不過使用這個選項會導致效能部分降低。
這項設定無法與 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;