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) 使用長插功能。所有來自後端的回應都會在後端傳送資料後立即關閉。因為後端有更多資料可供傳送,預設回應將保持開啟狀態。這樣可以避免特定 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 使用的快取。可用選項為 MemoryLocalCachePersistentLocalCache,兩者的設定選項也不同。根據預設,系統將使用 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 使用的快取。可用選項包括 MemoryLocalCachePersistentLocalCache,每個選項都有不同的設定選項。

如未指定,預設會使用 MemoryLocalCache

注意:同時設定這個欄位和 cacheSizeBytes 會在 SDK 初始化期間擲回例外狀況。請改用 FirestoreLocalCache 物件中的設定指定快取大小。

簽名:

localCache?: FirestoreLocalCache;

FirestoreSettings.ssl

連線時是否使用 SSL。

簽名:

ssl?: boolean;