@firebase/firestore/lite

功能

功能描述
函數(應用程序,...)
取得Firestore(應用程式)傳回與提供的FirebaseApp關聯的現有預設Firestore實例。如果不存在實例,則使用預設設定初始化新實例。
getFirestore(應用程序,資料庫ID) (測試版)傳回與提供的FirebaseApp關聯的現有Firestore實例。如果不存在實例,則使用預設設定初始化新實例。
初始化Firestore(應用程序,設定)使用提供的設定初始化 Cloud Firestore 的新執行個體。只能在任何其他函數之前調用,包括getFirestore() 。如果自訂設定為空,則函數相當於呼叫getFirestore()
初始化Firestore(應用程序,設置,databaseId) (測試版)使用提供的設定初始化 Cloud Firestore 的新執行個體。只能在任何其他函數之前調用,包括getFirestore() 。如果自訂設定為空,則函數相當於呼叫getFirestore()
函數(firestore,...)
集合(firestore、路徑、pathSegments)取得引用指定絕對路徑處的集合CollectionReference實例。
集合組(firestore,集合Id)建立並傳回一個新的Query實例,其中包含資料庫中具有給定collectionId集合或子集合中包含的所有文件。
connectFirestoreEmulator(firestore、主機、連接埠、選項)修改此實例以與 Cloud Firestore 模擬器進行通訊。注意:必須在使用該實例執行任何操作之前呼叫此方法。
文檔(firestore、路徑、pathSegments)取得引用指定絕對路徑處的文件的DocumentReference實例。
runTransaction(firestore,updateFunction,選項)執行給定的updateFunction ,然後嘗試提交交易中應用的變更。如果在事務中讀取的任何文件發生更改,Cloud Firestore 會重試updateFunction 。如果5次嘗試後仍無法提交,則交易失敗。單一事務允許的最大寫入次數為 500。
終止(火存儲)終止提供的Firestore實例。呼叫terminate()後,只能使用clearIndexedDbPersistence()函數。任何其他函數都會拋出FirestoreError 。終止不會取消任何掛起的寫入,並且任何等待伺服器回應的承諾都不會解決。若要在終止後重新啟動,請使用getFirestore()建立Firestore的新實例注意:一般情況下,不需要呼叫terminate() 。只有當您想要強制此實例釋放其所有資源或與clearIndexedDbPersistence()結合使用以確保在測試運行之間銷毀所有本地狀態時,此函數才有用。
writeBatch(火災存儲)建立一個寫入批次處理,用於將多個寫入作為單一原子操作執行。單一 WriteBatch 中允許的最大寫入次數為 500。這些寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
功能()
數數()建立一個 AggregateField 對象,該對象可用於計算查詢結果集中的文件計數。
刪除字段()傳回一個哨兵,與帶有{merge: true}updateDoc()setDoc()一起使用,以標記要刪除的欄位。
文檔ID()傳回一個特殊的哨兵FieldPath來引用文檔的 ID。它可用於在查詢中按文檔 ID 排序或過濾。
取得Firestore()傳回與預設FirebaseApp關聯的現有預設Firestore實例。如果不存在實例,則使用預設設定初始化新實例。
伺服器時間戳()傳回與setDoc()updateDoc()一起使用的哨兵,以在寫入的資料中包含伺服器產生的時間戳記。
函數(資料庫ID,...)
getFirestore(資料庫ID) (測試版)傳回與預設FirebaseApp關聯的現有Firestore實例。如果不存在實例,則使用預設設定初始化新實例。
函數(元素,...)
數組刪除(元素)傳回一個可以與setDoc()一起使用的特殊值,或告訴伺服器從伺服器上已存在的任何陣列值中刪除給定元素。指定的每個元素的所有實例將從數組中刪除。如果正在修改的欄位還不是數組,它將被空數組覆蓋。
數組聯合(元素)傳回一個可以與setDoc()updateDoc()一起使用的特殊值,該值告訴伺服器將給定元素與伺服器上已存在的任何陣列值聯合起來。數組中尚不存在的每個指定元素都將添加到末尾。如果正在修改的欄位還不是數組,它將被包含確切指定元素的數組覆寫。
函數(字段,...)
平均(場)建立一個 AggregateField 對象,該對象可用於計算查詢結果集中一系列文件中指定欄位的平均值。
總和(字段)建立一個 AggregateField 對象,該對象可用於計算查詢結果集中一系列文件的指定欄位的總和。
函數(字段路徑,...)
orderBy(fieldPath, 方向Str)建立一個QueryOrderByConstraint ,按指定欄位對查詢結果進行排序,可以選擇按降序而不是升序。注意:不包含指定欄位的文件不會出現在查詢結果中。
其中(欄位路徑、opStr、值)建立一個QueryFieldFilterConstraint ,強製文件必須包含指定欄位且該值應滿足提供的關係限制。
函數(字段值,...)
結束於(字段值)建立一個QueryEndAtConstraint ,它將結果集修改為相對於查詢順序在提供的欄位處結束。欄位值的順序必須與查詢的 order by 子句的順序相符。
結束之前(欄位值)建立一個QueryEndAtConstraint ,將結果集修改為相對於查詢順序在提供的欄位之前結束。欄位值的順序必須與查詢的 order by 子句的順序相符。
開始之後(欄位值)建立一個QueryStartAtConstraint ,它將結果集修改為相對於查詢順序在提供的欄位之後開始。欄位值的順序必須與查詢的 order by 子句的順序相符。
開始於(字段值)建立一個QueryStartAtConstraint ,它將結果集修改為從相對於查詢順序提供的欄位開始。欄位值的順序必須與查詢的 order by 子句的順序相符。
函數(左,...)
聚合字段等於(左,右)比較兩個“AggregateField” ` 平等的實例。
聚合查詢快照等於(左,右)比較兩個AggregateQuerySnapshot實例是否相等。如果兩個AggregateQuerySnapshot實例具有比較相等且資料相同的基礎查詢,則它們被視為「相等」。
查詢等於(左,右)如果提供的查詢指向同一集合並套用相同的約束,則傳回 true。
refEqual(左,右)如果提供的引用相等,則傳回 true。
快照等於(左,右)如果提供的快照相等,則傳回 true。
函數(極限,...)
限制(限制)建立一個僅傳回第一個符合文件的QueryLimitConstraint
限製到最後(限制)建立一個僅傳回最後符合文件的QueryLimitConstraint limitToLast查詢必須至少指定一個orderBy子句,否則執行過程中會拋出例外。
函數(日誌級別,...)
設定日誌等級(日誌等級)設定 Cloud Firestore 日誌的詳細程度(偵錯、錯誤或靜默)。
函數(n,...)
增量(n)傳回一個特殊值,可與setDoc()updateDoc()一起使用,告訴伺服器將欄位的目前值增加給定值。如果操作數或目前欄位值使用浮點精確度,則所有算術都遵循 IEEE 754 語意。如果兩個值都是整數,則超出 JavaScript 安全數字範圍( Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGER )的值也會受到精確度損失的影響。此外,一旦由 Firestore 後端處理,所有整數運算都限制在 -2^63 和 2^63-1 之間。如果目前欄位值不是number類型,或者該欄位尚不存在,則轉換會將該欄位設為給定值。
函數(查詢,...)
getAggregate(查詢,aggregateSpec)計算給定查詢結果集中文件的指定聚合,而無需實際下載文件。使用此函數執行聚合非常高效,因為僅下載最終聚合值,而不下載文件資料。當結果集太大而無法完全下載(數千個文件)時,此函數可以執行文件聚合。
取得計數(查詢)計算給定查詢的結果集中的文件數,而無需實際下載文件。使用此功能對文件進行計數非常高效,因為只下載最終計數,而不下載文件資料。當結果集太大而無法完全下載(數千個文件)時,此函數可以對文件進行計數。
取得文件(查詢)執行查詢並將結果作為QuerySnapshot傳回所有查詢都直接由伺服器執行,即使該查詢之前已執行過。最近的修改僅在後端已套用的情況下才會反映在檢索到的結果中。如果客戶端離線,則操作失敗。若要查看先前快取的結果和本機修改,請使用完整的 Firestore SDK。
查詢(查詢、複合過濾器、查詢約束)建立一個新的非可變Query實例,該實例已擴展為還包含其他查詢約束。
查詢(查詢,查詢約束)建立一個新的非可變Query實例,該實例已擴展為還包含其他查詢約束。
函數(查詢約束,...)
和(查詢約束)建立一個新的QueryCompositeFilterConstraint ,它是給定過濾器約束的結合。如果合取過濾器滿足所有給定過濾器,則該文件包含該文件。
或(查詢約束)建立一個新的QueryCompositeFilterConstraint ,它是給定過濾器約束的析取。如果析取過濾器滿足任何給定過濾器,則該文件包含該文件。
函數(參考,...)
addDoc(參考,數據)使用給定資料將新文件新增至指定的CollectionReference ,並自動為其指派文件 ID。此寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
集合(參考、路徑、pathSegments)取得一個CollectionReference實例,該實例引用指定相對路徑處的reference子集合。
集合(參考、路徑、pathSegments)取得一個CollectionReference實例,該實例引用指定相對路徑處的reference子集合。
刪除文件(參考)刪除指定DocumentReference引用的文件。刪除只會反映在傳回的 Promise 解決後發生的文檔讀取。如果客戶端離線,則刪除失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
文件(參考、路徑、路徑段)取得一個DocumentReference實例,該實例引用指定相對路徑處的reference內的文件。如果未指定路徑,則傳回的DocumentReference將使用自動產生的唯一 ID。
文件(參考、路徑、路徑段)取得一個DocumentReference實例,該實例引用指定相對路徑處的reference內的文件。
取得文件(參考)讀取指定文檔引用所引用的文檔。所有文件都直接從伺服器獲取,即使文件之前已讀取或修改。如果後端已套用最近的修改,則僅反映在檢索到的DocumentSnapshot中。如果客戶端離線,則讀取失敗。如果您喜歡使用快取或查看本機修改,請使用完整的 Firestore SDK。
setDoc(參考,數據)寫入指定DocumentReference引用的文件。如果該文件尚不存在,則會建立該文件。此寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
setDoc(參考、數據、選項)寫入指定DocumentReference引用的文件。如果該文件尚不存在,則會建立該文件。如果您提供mergemergeFields ,則提供的資料可以合併到現有文件中。此寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
updateDoc(參考,數據)更新指定DocumentReference引用的文件中的欄位。如果套用於不存在的文檔,更新將會失敗。此更新的結果將僅反映在傳回的承諾解決後發生的文件讀取中。如果客戶端離線,則更新失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
updateDoc(參考、欄位、值、moreFieldsAndValues)更新指定DocumentReference引用的文檔中的欄位 如果套用於不存在的文檔,更新將會失敗。可以透過提供點分隔的欄位路徑字串或提供FieldPath物件來更新巢狀欄位。此更新的結果將僅反映在傳回的承諾解決後發生的文件讀取中。如果客戶端離線,則更新失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
函數(快照,...)
結束時間(快照)建立一個QueryEndAtConstraint ,將結果集修改為以提供的文件(包含)結束。結束位置與查詢的順序有關。該文件必須包含查詢的 orderBy 中提供的所有欄位。
結束前(快照)建立一個QueryEndAtConstraint ,將結果集修改為在提供的文件之前結束(不包括)。結束位置與查詢的順序有關。該文件必須包含查詢的 orderBy 中提供的所有欄位。
開始之後(快照)建立一個QueryStartAtConstraint ,將結果集修改為在提供的文件之後開始(不包括)。起始位置與查詢的順序相關。該文件必須包含查詢的 orderBy 中提供的所有欄位。
開始時間(快照)建立一個QueryStartAtConstraint ,它將結果集修改為從提供的文件(包括)開始。起始位置與查詢的順序相關。該文件必須包含此查詢的orderBy中提供的所有欄位。

課程

班級描述
聚合字段表示可由 Firestore 執行的聚合。
聚合查詢快照執行聚合查詢的結果。
位元組表示位元組數組的不可變物件。
收藏參考CollectionReference物件可用於新增文件、取得文件參考和查詢文件(使用query() )。
文件參考DocumentReference是指 Firestore 資料庫中的文件位置,可用於寫入、讀取或偵聽該位置。引用位置處的文件可能存在,也可能不存在。
文件快照DocumentSnapshot包含從 Firestore 資料庫中的文件讀取的資料。可以使用.data().get(<field>)提取資料以取得特定欄位。對於指向不存在文件的DocumentSnapshot ,任何資料存取都會傳回「未定義」。您可以使用exists()方法明確驗證文件是否存在。
字段路徑FieldPath指的是文件中的欄位。此路徑可以由單一欄位名稱(指文件中的頂層欄位)或欄位名稱清單(指文件中的嵌套欄位)組成。透過提供欄位名稱建立FieldPath 。如果提供多個欄位名稱,則路徑將指向文件中的巢狀欄位。
欄位值使用set()update()寫入文件欄位時可以使用的哨兵值。
火庫Cloud Firestore 服務介面。不要直接呼叫此構造函數。相反,使用getFirestore()
Firestore錯誤Firestore 操作傳回的錯誤。
地理點表示 Firestore 中地理位置的不可變物件。該位置以緯度/經度對錶示。緯度值的範圍為 [-90, 90]。經度值的範圍為 [-180, 180]。
詢問Query是指您可以閱讀或聆聽的查詢。您也可以透過新增篩選器和排序來建構精煉的Query物件。
查詢複合過濾器約束QueryCompositeFilterConstraint用於透過執行多個QueryFieldFilterConstraint的邏輯 OR 或 AND 來縮小 Firestore 查詢傳回的文件集s 或QueryCompositeFilterConstraint s。 QueryCompositeFilterConstraint透過呼叫or()and()創建,然後可以傳遞給query()以建立也包含QueryCompositeFilterConstraint的新查詢實例。
查詢約束QueryConstraint用於縮小 Firestore 查詢傳回的文件集。 QueryConstraint透過呼叫where()來創建, orderBy() ,開始處() ,開始之後() ,結束之前() ,結束 ()限制()limitToLast()然後可以傳遞給query()以建立一個也包含此QueryConstraint的新查詢實例。
查詢文件快照QueryDocumentSnapshot包含作為查詢的一部分從 Firestore 資料庫中的文件讀取的資料。此文件保證存在,並且可以使用.data().get(<field>)提取其資料以取得特定欄位。 QueryDocumentSnapshot提供與DocumentSnapshot相同的 API 介面。由於查詢結果只包含現有文檔, exists屬性將始終為 true,且data()永遠不會返回「未定義」。
查詢結束約束QueryEndAtConstraint用於從 Firestore 查詢傳回的結果集末端排除文件。 QueryEndAtConstraint是透過呼叫endAt()endBefore()建立的,然後可以傳遞給query()以建立也包含此QueryEndAtConstraint的新查詢實例。
查詢字段過濾約束QueryFieldFilterConstraint用於透過篩選一個或多個文件欄位來縮小 Firestore 查詢傳回的文件集。 QueryFieldFilterConstraint是透過呼叫where()來建立的,然後可以傳遞給query()以建立一個也包含此QueryFieldFilterConstraint的新查詢實例。
查詢限制約束QueryLimitConstraint用於限制 Firestore 查詢傳回的文件數量。 QueryLimitConstraint是透過呼叫limit()limitToLast()建立的,然後可以傳遞給query()以建立一個也包含此QueryLimitConstraint的新查詢實例。
按約束查詢順序QueryOrderByConstraint用於對 Firestore 查詢傳回的文件集進行排序。 QueryOrderByConstraint是透過呼叫orderBy()來建立的,然後可以傳遞給query()以建立一個也包含此QueryOrderByConstraint的新查詢實例。注意:不包含 orderBy 欄位的文件不會出現在查詢結果中。
查詢快照QuerySnapshot包含零個或多個表示查詢結果的DocumentSnapshot物件。文件可以透過docs屬性作為數組進行訪問,也可以使用forEach方法進行枚舉。文件的數量可以透過emptysize屬性來決定。
查詢開始約束QueryStartAtConstraint用於從 Firestore 查詢傳回的結果集的開頭排除文件。 QueryStartAtConstraint是透過呼叫startAt()startAfter()建立的,然後可以傳遞給query()以建立一個也包含此QueryStartAtConstraint的新查詢實例。
時間戳Timestamp表示獨立於任何時區或日曆的時間點,以 UTC 紀元時間中奈秒分辨率的秒和秒的分數表示。它使用 Proleptic 公曆進行編碼,將公曆向後延伸到第一年。它的編碼假定所有分鐘都是 60 秒長,即閏秒被“塗抹”,因此不需要閏秒錶來解釋。範圍從 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59.999999999Z。有關範例和更多規範,請參閱時間戳定義
交易對交易的引用。傳遞給交易的updateFunctionTransaction物件提供在事務上下文中讀取和寫入資料的方法。參見runTransaction()
寫批次處理寫入批次處理,用於將多個寫入作為單一原子單元執行。可以透過呼叫writeBatch()來取得WriteBatch對象。它提供了將寫入添加到寫入批次的方法。在呼叫WriteBatch.commit()之前,不會提交任何寫入(或在本地可見)。

介面

介面描述
聚合規格指定一組聚合及其別名。
文件資料文件資料(與setDoc()一起使用) 由對應到值的欄位組成。
Firestore資料轉換器withConverter()使用轉換器將AppModelType類型的使用者物件轉換為DbModelType類型的 Firestore 資料。使用轉換器可讓您在從 Firestore 儲存和擷取物件時指定通用類型參數。在這種情況下,「AppModel」是在應用程式中用於將相關資訊和功能打包在一起的類別。例如,這樣的類別可以具有複雜巢狀資料類型的屬性、用於記憶的屬性、Firestore 不支援的類型的屬性(例如symbolbigint )以及執行複合操作的輔助函數。此類類別不適合和/或無法儲存到 Firestore 資料庫中。相反,此類別的實例需要轉換為具有專有原始屬性的「普通舊 JavaScript 物件」(POJO),可能嵌套在其他 POJO 或 POJO 陣列中。在此上下文中,此類型稱為“DbModel”,並且是適合持久保存到 Firestore 中的物件。為了方便起見,應用程式可以實作FirestoreDataConverter並向 Firestore 物件(例如DocumentReferenceQuery註冊轉換器,以便在儲存到 Firestore 時自動將AppModel轉換為DbModel ,並在從 Firestore 擷取時自動將DbModel轉換為AppModel
設定指定 Cloud Firestore 執行個體的自訂配置。您必須在呼叫任何其他方法之前設定這些。
交易選項自訂交易行為的選項。

類型別名

類型別名描述
新增前綴到鍵傳回一個新映射,其中每個鍵都以附加到點的外部鍵為前綴。
聚合字段類型Firestore 支援的所有AggregateField類型的並集。
聚合規格數據一種類型,其鍵取自AggregateSpec ,其值是輸入AggregateSpec中對應AggregateField執行聚合的結果。
聚合類型表示要執行的聚合類型的聯合類型。
子更新字段用於計算給定類型 T1 的巢狀欄位的幫助程式。這是分配聯合類型(例如undefined | {...}所必需的。 undefined | {...} (發生在可選 props 中)或{a: A} | {b: B}在此用例中, V用於在Record上分發T[K]的聯合類型,因為T[K]被計算為表達式而不是分發。請參閱 https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types
Firestore錯誤程式碼Firestore 狀態碼集。這些代碼與 gRPC 公開的代碼相同:https://github.com/grpc/grpc/blob/master/doc/statuscodes.md可能的值: - 'cancelled':操作被取消(通常由呼叫者取消)。 -「未知」:未知錯誤或來自不同錯誤域的錯誤。 -「無效參數」:客戶端指定了無效參數。請注意,這與「失敗前提條件」不同。 「invalid-argument」表示無論系統狀態如何都有問題的參數(例如無效的欄位名稱)。 -「超過截止日期」:操作完成前截止日期已過。對於更改系統狀態的操作,即使操作已成功完成,也可能會傳回此錯誤。例如,伺服器的成功回應可能會延遲足夠長的時間,以致截止日期到期。 -「未找到」:未找到某些請求的文件。 -「已經存在」:我們嘗試建立的某些文件已經存在。 - 'permission-denied':呼叫者沒有執行指定操作的權限。 -「資源耗盡」:某些資源已耗盡,可能是每個使用者的配額,也可能是整個檔案系統空間不足。 - 'failed-precondition':操作被拒絕,因為系統未處於操作執行所需的狀態。 - “已中止”:操作被中止,通常是由於事務中止等並發問題。-“超出範圍”:嘗試的操作超出了有效範圍。 -“未實現”:操作未實現或不支援/啟用。 -“內部”:內部錯誤。意味著底層系統期望的一些不變量已經被打破。如果您看到其中一個錯誤,則表示某些內容已嚴重損壞。 -「不可用」:該服務目前無法使用。這很可能是瞬態情況,可以透過退避重試來修正。 -「資料遺失」:不可恢復的資料遺失或損壞。 -「未經身份驗證」:請求沒有用於操作的有效身份驗證憑證。
嵌套更新字段對於每個欄位(例如“bar”),請尋找所有巢狀鍵(例如{ 'bar.baz':T1,'bar.qux':T2 } )。將它們交叉在一起以形成一個包含所有可能的鍵(全部標記為可選)的映射
按方向訂購orderBy()子句的方向指定為「desc」或「asc」(降序或升序)。
帶有字段值的部分與 Typescript 的Partial<T>類似,但允許省略巢狀欄位並允許將 FieldValues 作為屬性值傳入。
原始原始型別。
查詢約束類型描述此 SDK 中可用的不同查詢約束。
查詢過濾約束QueryFilterConstraint是表示QueryFieldFilterConstraintQueryCompositeFilterConstraint的輔助聯合類型
查詢非過濾約束QueryNonFilterConstraint是一種輔助聯合類型,表示 QueryConstraint,用於縮小或排序文件集,但不會明確過濾文件欄位。 QueryNonFilterConstraint透過呼叫orderBy()來創建,開始處() ,開始之後() ,結束之前() ,結束 ()limit()limitToLast() ,然後可以傳遞給query()以建立一個也包含QueryConstraint新查詢實例。
設定選項配置setDoc()行為的選項對象,並撥打電話。可以將這些呼叫配置為執行粒度合併,而不是透過提供帶有merge: trueSetOptions來完全覆蓋目標文件。
並集到交集給定一個聯合類型U = T1 | T2 | ... ,返回相交類型(T1 & T2 & ...)使用分佈式條件類型和條件類型的推論。這是有效的,因為逆變位置中同一類型變數的多個候選者會導致推斷出交集類型。 https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-in​​ference-in-conditional-types https://stackoverflow.com/questions/50374908/transform-union-type- to-intersection -類型
更新數據更新資料(與updateDoc()一起使用),由映射到值的欄位路徑(例如“foo”或“foo.baz”)組成。包含點的欄位引用文件中的嵌套欄位。 FieldValues 可以作為屬性值傳入。
過濾器所在位置where()子句中的篩選條件使用字串 '<'、'<='、'=='、'!='、'>='、'>'、'array-contains' 指定、“在” 、「數組包含任何」和「不在」。
帶字段值允許 FieldValues 作為屬性值傳入,同時保持型別安全。

函數(應用程序,...)

取得Firestore(應用程式)

傳回與提供的FirebaseApp關聯的現有預設Firestore實例。如果不存在實例,則使用預設設定初始化新實例。

簽名:

export declare function getFirestore(app: FirebaseApp): Firestore;

參數

範圍類型描述
應用程式Firebase應用程式傳回的Firestore實例關聯的FirebaseApp實例。

返回:

火庫

所提供應用程式的Firestore實例。

getFirestore(應用程序,資料庫ID)

此 API 作為開發人員預覽版提供,可能會根據我們收到的回饋進行更改。不要在生產環境中使用此 API。

傳回與提供的FirebaseApp相關的現有Firestore實例。如果不存在實例,則使用預設設定初始化新實例。

簽名:

export declare function getFirestore(app: FirebaseApp, databaseId: string): Firestore;

參數

範圍類型描述
應用程式Firebase應用程式傳回的Firestore實例關聯的FirebaseApp實例。
資料庫ID細繩資料庫的名稱。

返回:

火庫

所提供應用程式的Firestore實例。

初始化Firestore(應用程序,設定)

使用提供的設定初始化 Cloud Firestore 的新執行個體。只能在任何其他函數之前調用,包括getFirestore() 。如果自訂設定為空,則函數相當於呼叫getFirestore()

簽名:

export declare function initializeFirestore(app: FirebaseApp, settings: Settings): Firestore;

參數

範圍類型描述
應用程式Firebase應用程式Firestore實例將與之關聯的FirebaseApp
設定設定用於配置Firestore實例的設定物件。

返回:

火庫

新初始化的Firestore實例。

初始化Firestore(應用程序,設置,databaseId)

此 API 作為開發人員預覽版提供,可能會根據我們收到的回饋進行更改。不要在生產環境中使用此 API。

使用提供的設定初始化 Cloud Firestore 的新執行個體。只能在任何其他函數之前調用,包括getFirestore() 。如果自訂設定為空,則函數相當於呼叫getFirestore()

簽名:

export declare function initializeFirestore(app: FirebaseApp, settings: Settings, databaseId?: string): Firestore;

參數

範圍類型描述
應用程式Firebase應用程式Firestore實例將與之關聯的FirebaseApp
設定設定用於配置Firestore實例的設定物件。
資料庫ID細繩資料庫的名稱。

返回:

火庫

新初始化的Firestore實例。

函數(firestore,...)

集合(firestore、路徑、pathSegments)

取得引用指定絕對路徑處的集合CollectionReference實例。

簽名:

export declare function collection(firestore: Firestore, path: string, ...pathSegments: string[]): CollectionReference<DocumentData, DocumentData>;

參數

範圍類型描述
火庫火庫對根Firestore實例的參考。
小路細繩以斜線分隔的集合路徑。
路徑段細繩[]相對於第一個參數所應用的附加路徑段。

返回:

收藏參考<文檔數據,文檔數據>

CollectionReference實例。

例外情況

如果最終路徑有偶數個段且不指向集合。

集合組(firestore,集合Id)

建立並傳回一個新的Query實例,其中包含資料庫中具有給定collectionId的集合或子集合中包含的所有文檔

簽名:

export declare function collectionGroup(firestore: Firestore, collectionId: string): Query<DocumentData, DocumentData>;

參數

範圍類型描述
火庫火庫對根Firestore實例的參考。
集合ID細繩標識要查詢的集合。將包含將此 ID 作為其路徑最後一段的每個集合或子集合。不能包含斜線。

返回:

詢問<文檔數據,文檔數據>

建立的Query

connectFirestoreEmulator(firestore、主機、連接埠、選項)

修改此實例以與 Cloud Firestore 模擬器進行通訊。

簽名:

export declare function connectFirestoreEmulator(firestore: Firestore, host: string, port: number, options?: {
    mockUserToken?: EmulatorMockTokenOptions | string;
}): void;

參數

範圍類型描述
火庫火庫要配置為連接到模擬器的Firestore實例。
主持人細繩模擬器主機(例如:localhost)。
港口數位模擬器連接埠(例如:9000)。
選項{mockUserToken?: EmulatorMockTokenOptions |細繩; }

返回:

空白

文檔(firestore、路徑、pathSegments)

取得引用指定絕對路徑處的文件的DocumentReference實例。

簽名:

export declare function doc(firestore: Firestore, path: string, ...pathSegments: string[]): DocumentReference<DocumentData, DocumentData>;

參數

範圍類型描述
火庫火庫對根Firestore實例的參考。
小路細繩以斜線分隔的文檔路徑。
路徑段細繩[]將相對於第一個參數套用的附加路徑段。

返回:

文件參考<文檔數據,文檔數據>

DocumentReference實例。

例外情況

如果最終路徑有奇數個段並且不指向文件。

runTransaction(firestore,updateFunction,選項)

執行給定的updateFunction ,然後嘗試提交交易中應用的變更。如果在事務中讀取的任何文件發生更改,Cloud Firestore 會重試updateFunction 。如果5次嘗試後仍無法提交,則交易失敗。

單一事務允許的最大寫入次數為 500。

簽名:

export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T>, options?: TransactionOptions): Promise<T>;

參數

範圍類型描述
火庫火庫執行此交易的 Firestore 資料庫的參考。
更新函數(交易:交易) => 承諾<T>在事務上下文中執行的函數。
選項交易選項用於配置嘗試提交的最大次數的選項物件。

返回:

承諾<T>

如果交易成功完成或明確中止了( updateFunction傳回了失敗的承諾),則updateFunction退還的承諾在這裡返回。否則,如果交易失敗,則傳回帶有相應失敗錯誤的拒絕承諾。

終止(Firestore)

終止提供的Firestore實例。

呼叫terminate()之後,只能使用clearIndexedDbPersistence()函數。任何其他功能都會拋出FirestoreError 。終止不會取消任何待處理的寫作,並且無法解決等待伺服器回應的任何承諾。

若要在終止後重新啟動,請使用getfirestore()建立一個新的Firestore實例

簽名:

export declare function terminate(firestore: Firestore): Promise<void>;

參數

範圍類型描述
火庫火庫終止的Firestore實例。

返回:

承諾<無效>

實例成功終止時解決的Promise將得到解決。

寫入批次(Firestore)

建立一個寫入批次,用於執行多個原子操作。單一寫入中允許的最大寫入數為500。

這些寫入的結果只會反映在傳回承諾解決後發生的文件讀取。如果客戶端處於離線狀態,則寫入失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function writeBatch(firestore: Firestore): WriteBatch;

參數

範圍類型描述
火庫火庫

返回:

寫入

可以用來原子執行多個寫入的WriteBatch

功能()

數數()

建立一個聚集的對象,該對象可用於在查詢的結果集中計算文件計數。

簽名:

export declare function count(): AggregateField<number>;

返回:

骨材<數字>

deletefield()

傳回sentinel,供{merge: true}updatedoc()setDoc()一起使用,以標記刪除欄位。

簽名:

export declare function deleteField(): FieldValue;

返回:

現場價值

DocumentID()

傳回一個特殊的哨兵FieldPath ,以參考文檔的ID。它可以在查詢中用於透過文檔ID進行排序或過濾。

簽名:

export declare function documentId(): FieldPath;

返回:

字段路徑

getfirestore()

傳回與預設firbaseApp關聯的現有預設firestore實例。如果不存在實例,請用預設設定初始化一個新實例。

簽名:

export declare function getFirestore(): Firestore;

返回:

火庫

提供的應用程式的Firestore實例。

伺服器時間戳()

傳回與setDoc()updatedoc()一起使用的哨兵,以在書面資料中包含伺服器產生的時間戳記。

簽名:

export declare function serverTimestamp(): FieldValue;

返回:

現場價值

函數(資料庫,...)

getfirestore(資料庫)

此API是作為開發人員的預覽提供的,可能會根據我們收到的回饋而更改。不要在生產環境中使用此API。

傳回與預設firbaseApp關聯的現有的firestore實例。如果不存在實例,請用預設設定初始化一個新實例。

簽名:

export declare function getFirestore(databaseId: string): Firestore;

參數

範圍類型描述
資料庫ID細繩資料庫的名稱。

返回:

火庫

提供的應用程式的Firestore實例。

功能(元素,...)

數組刪除(元素)

傳回可以與setDoc()一起使用的特殊值,或告訴伺服器從伺服器上已經存在的任何陣列值中刪除給定元素。指定的每個元素的所有實例將從數組中刪除。如果要修改的欄位還不是一個數組,它將被一個空數組覆蓋。

簽名:

export declare function arrayRemove(...elements: unknown[]): FieldValue;

參數

範圍類型描述
元素未知[]從數組中刪除的元素。

返回:

現場價值

用於呼叫setDoc()updateDoc()FieldValue Sentinel

陣列(元素)

傳回可以與setDoc()updatedoc()一起使用的特殊值,該值告訴伺服器將給定元素與伺服器上已經存在的任何陣列值結合。數組中尚未存在的每個指定元素將添加到末尾。如果要修改的欄位還不是數組,它將被包含指定元素的數組覆寫。

簽名:

export declare function arrayUnion(...elements: unknown[]): FieldValue;

參數

範圍類型描述
元素未知[]將元素變成陣列的要素。

返回:

現場價值

用於呼叫setDoc()updateDoc()FieldValue Sentinel

功能(字段,...)

平均(場)

建立一個聚集的對象,該對象可用於在查詢的結果集中在一系列文件上計算指定欄位的平均值。

簽名:

export declare function average(field: string | FieldPath): AggregateField<number | null>;

參數

範圍類型描述
場地字串|字段路徑在結果集中指定平均的欄位。

返回:

骨材<號碼|空>

總和(字段)

建立一個聚集的對象,該對象可用於在查詢結果集中在一系列文件上計算指定欄位的總和。

簽名:

export declare function sum(field: string | FieldPath): AggregateField<number>;

參數

範圍類型描述
場地字串|字段路徑指定在結果集中總和的欄位。

返回:

骨材<數字>

功能(fieldpath,...)

Orderby(FieldPath,DirectionSTR)

建立一個QueryOrderByConstraint ,該查詢由指定欄位對查詢產生,可選為降序而不是上升。

簽名:

export declare function orderBy(fieldPath: string | FieldPath, directionStr?: OrderByDirection): QueryOrderByConstraint;

參數

範圍類型描述
野外路徑字串|字段路徑要排序的欄位。
DirectionStr按方向訂購可選的方向,按(“ ASC”或“ DESC”)排序。如果未指定,訂單將上升。

返回:

QueryOrderByConstraint

創建的QueryOrderByConstraint

其中(欄位路徑、opStr、值)

建立一個QueryFieldFilterConstraint ,該文件執行該文件必須包含指定字段,並且該值應滿足所提供的關係約束。

簽名:

export declare function where(fieldPath: string | FieldPath, opStr: WhereFilterOp, value: unknown): QueryFieldFilterConstraint;

參數

範圍類型描述
野外路徑字串|字段路徑比較的途徑
OPSTR filterop操作字串(例如“&lt;”,“”,“&lt; =”,“ ==”,“”&lt;“,”&lt; =“,”,“!=”)。
價值未知比較值

返回:

QueryFieldFilterConstraint

創建的QueryFieldFilterConstraint

函數(fieldvalues,...)

Endat(fieldvalues)

建立一個QueryEndatConstraint ,可修改結果設定以在提供的欄位相對於查詢的順序結束。欄位值的順序必須與查詢條款的子句相符。

簽名:

export declare function endAt(...fieldValues: unknown[]): QueryEndAtConstraint;

參數

範圍類型描述
現場值未知[]按查詢以查詢順序結束此查詢的欄位值。

返回:

queryendatConstraint

QueryEndatConstraint傳遞給query()

結束之前(欄位值)

建立一個QueryEndatConstraint ,將結果修改為在提供的欄位相對於查詢順序之前結束。欄位值的順序必須與查詢條款的子句相符。

簽名:

export declare function endBefore(...fieldValues: unknown[]): QueryEndAtConstraint;

參數

範圍類型描述
現場值未知[]以查詢順序順序結束此查詢之前的欄位值。

返回:

queryendatConstraint

QueryEndatConstraint傳遞給query()

開始之後(欄位值)

建立一個QueryStartatConstraint ,該查詢將修改結果設定在提供的欄位相對於查詢順序之後開始。欄位值的順序必須與查詢條款的子句相符。

簽名:

export declare function startAfter(...fieldValues: unknown[]): QueryStartAtConstraint;

參數

範圍類型描述
現場值未知[]按查詢依查詢順序依序啟動此查詢的欄位值。

返回:

querystartatconstraint

QueryStartatConstraint以傳遞到query()

startat(fieldvalues)

建立一個QueryStartAtconstraint ,可修改結果設置,以從提供的欄位開始相對於查詢的順序。欄位值的順序必須與查詢條款的子句相符。

簽名:

export declare function startAt(...fieldValues: unknown[]): QueryStartAtConstraint;

參數

範圍類型描述
現場值未知[]按查詢按查詢順序啟動此查詢的欄位值。

返回:

querystartatconstraint

QueryStartatConstraint以傳遞到query()

功能(左...)

骨材

比較兩個'聚集`平等實例。

簽名:

export declare function aggregateFieldEqual(left: AggregateField<unknown>, right: AggregateField<unknown>): boolean;

參數

範圍類型描述
左邊骨材<未知>比較right的這個骨材。
正確的骨材<未知>比較left的這個聚集體。

返回:

布林值

ExcregateQuerySnapShoteQual(左,右)

比較兩個AggregateQuerySnapshot實例以保持平等。

如果兩個AggregateQuerySnapshot實例具有比較相等的基本查詢和相同資料的基本查詢,則將其視為「相等」。

簽名:

export declare function aggregateQuerySnapshotEqual<AggregateSpecType extends AggregateSpec, AppModelType, DbModelType extends DocumentData>(left: AggregateQuerySnapshot<AggregateSpecType, AppModelType, DbModelType>, right: AggregateQuerySnapshot<AggregateSpecType, AppModelType, DbModelType>): boolean;

參數

範圍類型描述
左邊骨材Quearysnapshot <gentregateSpectype,appmodeltype,dbmodeltype>第一個比較的AggregateQuerySnapshot
正確的骨材Quearysnapshot <gentregateSpectype,appmodeltype,dbmodeltype>第二個要比較的AggregateQuerySnapshot

返回:

布林值

如果物件是「相等」的,則如上所述,或否則false true

QueryEqual(左,右)

如果提供的查詢指向同一集合並套用相同的約束,則傳回為true。

簽名:

export declare function queryEqual<AppModelType, DbModelType extends DocumentData>(left: Query<AppModelType, DbModelType>, right: Query<AppModelType, DbModelType>): boolean;

參數

範圍類型描述
左邊詢問<AppModelType,DBModelType>比較的Query
正確的詢問<AppModelType,DBModelType>比較的Query

返回:

布林值

如果引用指向同一firestore資料庫中的相同位置,則為true。

重新等式(左,右)

如果提供的引用相等,則傳回為true。

簽名:

export declare function refEqual<AppModelType, DbModelType extends DocumentData>(left: DocumentReference<AppModelType, DbModelType> | CollectionReference<AppModelType, DbModelType>, right: DocumentReference<AppModelType, DbModelType> | CollectionReference<AppModelType, DbModelType>): boolean;

參數

範圍類型描述
左邊DocumentReference <AppModelType,DbModelType> | CollectionReference <AppModelType,DBModelType>參考比較。
正確的DocumentReference <AppModelType,DbModelType> | CollectionReference <AppModelType,DBModelType>參考比較。

返回:

布林值

如果引用指向同一firestore資料庫中的相同位置,則為true。

Snapshotequal(左,右)

如果提供的快照相等,則傳回true。

簽名:

export declare function snapshotEqual<AppModelType, DbModelType extends DocumentData>(left: DocumentSnapshot<AppModelType, DbModelType> | QuerySnapshot<AppModelType, DbModelType>, right: DocumentSnapshot<AppModelType, DbModelType> | QuerySnapshot<AppModelType, DbModelType>): boolean;

參數

範圍類型描述
左邊DocumentsNapshot <AppModelType,DbModelType> | querysnapshot <AppModelType,DBModelType>比較快照。
正確的DocumentsNapshot <AppModelType,DbModelType> | querysnapshot <AppModelType,DBModelType>比較快照。

返回:

布林值

如果快照相等,則為是真的。

函數(極限,...)

限制(極限)

建立一個僅傳回第一個符合文件的查詢限制

簽名:

export declare function limit(limit: number): QueryLimitConstraint;

參數

範圍類型描述
限制數位傳回的最大項目數。

返回:

QuerylimitConstraint

建立的查詢限制

限製到最後(限制)

建立一個僅傳回最後一個符合的文件的查詢限制

您必須至少為limitToLast查詢指定至少一個orderBy條款,否則在執行期間將拋出一個例外。

簽名:

export declare function limitToLast(limit: number): QueryLimitConstraint;

參數

範圍類型描述
限制數位傳回的最大項目數。

返回:

QuerylimitConstraint

建立的查詢限制

功能(Loglevel,...)

setLoglevel(loglevel)

設定Cloud Firestore日誌的詳細性(調試,錯誤或無聲)。

簽名:

export declare function setLogLevel(logLevel: LogLevel): void;

參數

範圍類型描述
日誌等級日誌等級您設定的活動和錯誤記錄的詳細性。可以是以下任何值:
  • debug大多數詳細的記錄級別,主要用於調試。
  • 僅記錄錯誤的error
  • silent to turn off logging.

返回:

空白

功能(n,...)

增量(n)

傳回可以與setDoc()updatedoc()一起使用的特殊值,該值告訴伺服器透過給定值增加欄位的目前值。

如果操作數或目前場值使用浮點精確度,則所有算術均遵循IEEE 754語意。如果兩個值都是整數,則在JavaScript的安全號碼範圍之外( Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGER之外的值)也遭受精確損失。此外,一旦透過Firestore後端處理,所有整數操作都限制在-2^63和2^63-1之間。

如果目前欄位值不是類型number ,或者如果欄位尚不存在,則轉換將欄位設為給定值。

簽名:

export declare function increment(n: number): FieldValue;

參數

範圍類型描述
n數位要增加的值。

返回:

現場價值

用於呼叫setDoc()updateDoc()FieldValue Sentinel

函數(查詢,...)

getAggregate(查詢,gentregatespec)

在給定查詢的結果集中計算文件上指定的聚合,而無需實際下載文件。

使用此功能執行聚合是有效的,因為只有最終的聚合值而不是文件的資料。在結果集非常大以完全下載的情況下,此功能可以執行文件的聚合(成千上萬的文檔)。

簽名:

export declare function getAggregate<AggregateSpecType extends AggregateSpec, AppModelType, DbModelType extends DocumentData>(query: Query<AppModelType, DbModelType>, aggregateSpec: AggregateSpecType): Promise<AggregateQuerySnapshot<AggregateSpecType, AppModelType, DbModelType>>;

參數

範圍類型描述
詢問詢問<AppModelType,DBModelType>其結果集的查詢已匯總。
聚集匯總光譜一個指定要在結果集上執行的聚合AggregateSpec件。骨材PEC指定每個骨材的別名,可用來檢索聚合結果。

返回:

Promise < gentregatequerysnapshot <gentregateSpectype,appmodeltype,dbmodeltype >>

例子

const aggregateSnapshot = await getAggregate(query, {
  countOfDocs: count(),
  totalHours: sum('hours'),
  averageScore: average('score')
});

const countOfDocs: number = aggregateSnapshot.data().countOfDocs;
const totalHours: number = aggregateSnapshot.data().totalHours;
const averageScore: number | null = aggregateSnapshot.data().averageScore;

getCount(查詢)

在沒有實際下載文件的情況下計算給定查詢結果集中的文件數。

使用此功能來計數文件是有效的,因為只有最終計數(而不是文件的資料)才會下載。在結果集非常大以完全下載的情況下,此功能可以計算文件(成千上萬的文件)。

簽名:

export declare function getCount<AppModelType, DbModelType extends DocumentData>(query: Query<AppModelType, DbModelType>): Promise<AggregateQuerySnapshot<{
    count: AggregateField<number>;
}, AppModelType, DbModelType>>;

參數

範圍類型描述
詢問詢問<AppModelType,DBModelType>計算其結果設定大小的查詢。

返回:

Promise < gentregatequerysnapshot <{count:骨材<數字>; },appModelType,dbmodeltype >>

將透過計數解決的承諾;計數可以從snapshot.data().count檢索,其中snapshot是返回的諾言可以解決的AggregateQuerySnapshot

GetDocs(查詢)

執行查詢並將結果傳回為QuerySnapshot

即使查詢先前執行,所有查詢均直接由伺服器執行。最新的修改僅在後端已經應用的結果中反映在檢索結果中。如果客戶端處於離線狀態,則操作失敗。若要查看先前快取的結果和本機修改,請使用完整的Firestore SDK。

簽名:

export declare function getDocs<AppModelType, DbModelType extends DocumentData>(query: Query<AppModelType, DbModelType>): Promise<QuerySnapshot<AppModelType, DbModelType>>;

參數

範圍類型描述
詢問詢問<AppModelType,DBModelType>要執行的Query

返回:

Promise < querysnapshot <AppModelType,dbModelType >>

查詢結果將解決的承諾將解決。

查詢(查詢,CompositeFilter,QueryConstraints)

建立一個新的非可變Query實例,該實例已擴展為還包含其他查詢約束。

簽名:

export declare function query<AppModelType, DbModelType extends DocumentData>(query: Query<AppModelType, DbModelType>, compositeFilter: QueryCompositeFilterConstraint, ...queryConstraints: QueryNonFilterConstraint[]): Query<AppModelType, DbModelType>;

參數

範圍類型描述
詢問詢問<AppModelType,DBModelType>用作新約束基礎的查詢實例。
複合式濾波器QueryCompositeFilterConstraint QueryCompositeFilterConstraint應用程式。使用和()()建立QueryCompositeFilterConstraint
查詢約束querynonfilterconstraint []附加QueryNonFilterConstraint s應用(例如orderby()限制() )。

返回:

詢問<AppModelType,DBModelType>

例外情況

如果提供的任何查詢約束無法與現有或新約束組合。

查詢(查詢,查詢約束)

建立一個新的非可變Query實例,該實例已擴展為還包含其他查詢約束。

簽名:

export declare function query<AppModelType, DbModelType extends DocumentData>(query: Query<AppModelType, DbModelType>, ...queryConstraints: QueryConstraint[]): Query<AppModelType, DbModelType>;

參數

範圍類型描述
詢問詢問<AppModelType,DBModelType>用作新約束基礎的查詢實例。
查詢約束查詢約束[]查詢列表S申請。

返回:

詢問<AppModelType,DBModelType>

例外情況

如果提供的任何查詢約束無法與現有或新約束組合。

函數(QueryConstraints,...)

和(QueryConstraints)

建立一個新的QueryCompositeFilterConstraint ,它是給定過濾器約束的結合。連接詞過濾器如果滿足所有給定過濾器,則包含文件。

簽名:

export declare function and(...queryConstraints: QueryFilterConstraint[]): QueryCompositeFilterConstraint;

參數

範圍類型描述
查詢約束QueryFilterConstraint []選修的。 QueryFilterConstraint的列表s執行連接詞。這些必須透過呼叫到where()來創建或() ,or和()

返回:

QueryCompositeFilterConstraint

新建的QueryCompositeFilterConstraint

或(QueryConstraints)

建立一個新的QueryCompositeFilterConstraint ,這是給定過濾器約束的脫節。如果析出過濾器滿足任何給定過濾器,則包括文件。

簽名:

export declare function or(...queryConstraints: QueryFilterConstraint[]): QueryCompositeFilterConstraint;

參數

範圍類型描述
查詢約束QueryFilterConstraint []選修的。 QueryFilterConstraint的列表s執行脫節。這些必須透過呼叫到where()來創建或() ,or和()

返回:

QueryCompositeFilterConstraint

新建的QueryCompositeFilterConstraint

功能(參考,...)

ADDDOC(參考,數據)

將新文件新增至指定的CollectionReference中,並使用給定資料添加,並自動分配文件ID。

本文的結果只會反映在傳回的承諾消除後發生的文檔讀取。如果客戶端處於離線狀態,則寫入失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function addDoc<AppModelType, DbModelType extends DocumentData>(reference: CollectionReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): Promise<DocumentReference<AppModelType, DbModelType>>;

參數

範圍類型描述
參考CollectionReference <AppModelType,DBModelType>集合的參考,將此文件新增至。
數據與FieldValue <AppModelType>一個包含新文檔資料的物件。

返回:

承諾< documentReference <AppModelType,dbModelType >>

在將DocumentReference寫入後端後,指出了新建立的文件的Promise

例外情況

錯誤 - 如果提供的輸入不是有效的Firestore文件。

收集(參考,路徑,路徑)

取得一個CollectionReference實例,該實例是指指定的相對路徑的reference子集合。

簽名:

export declare function collection<AppModelType, DbModelType extends DocumentData>(reference: CollectionReference<AppModelType, DbModelType>, path: string, ...pathSegments: string[]): CollectionReference<DocumentData, DocumentData>;

參數

範圍類型描述
參考CollectionReference <AppModelType,DBModelType>對集合的引用。
小路細繩一條分開的藏品路徑。
路徑細繩[]相對於第一個參數適用的其他路徑段。

返回:

CollectionReference <文檔數據,文檔數據>

CollectionReference實例。

例外情況

如果最終路徑具有均勻數的段,並且沒有指向集合。

收集(參考,路徑,路徑)

取得一個CollectionReference實例,該實例是指指定的相對路徑的reference子集合。

簽名:

export declare function collection<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, path: string, ...pathSegments: string[]): CollectionReference<DocumentData, DocumentData>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對Firestore文件的引用。
小路細繩一條分開的藏品路徑。
路徑細繩[]相對於第一個參數將會套用的其他路徑段。

返回:

CollectionReference <文檔數據,文檔數據>

CollectionReference實例。

例外情況

如果最終路徑具有均勻數的段,並且沒有指向集合。

DELETEDOC(參考)

刪除指定的DocumentReference提到的文檔

刪除只會反映在傳回承諾解決後發生的文件讀取中。如果客戶端離線,則刪除失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function deleteDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>): Promise<void>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>要刪除的文件的引用。

返回:

承諾<無效>

一旦文件成功從後端刪除, Promise就解決了。

DOC(參考,路徑,路徑)

取得一個DocumentReference實例,該實例指定的相對路徑中的reference文件中的文件。如果未指定路徑,則將自動產生的唯一ID用於傳回的DocumentReference

簽名:

export declare function doc<AppModelType, DbModelType extends DocumentData>(reference: CollectionReference<AppModelType, DbModelType>, path?: string, ...pathSegments: string[]): DocumentReference<AppModelType, DbModelType>;

參數

範圍類型描述
參考CollectionReference <AppModelType,DBModelType>對集合的引用。
小路細繩文檔分隔的路徑。必須省略使用自動產生的ID。
路徑細繩[]相對於第一個參數將會套用的其他路徑段。

返回:

DocumentReference <AppModelType,DBModelType>

DocumentReference實例。

例外情況

如果最終路徑具有奇數段,並且沒有指向文件。

DOC(參考,路徑,路徑)

取得一個DocumentReference實例,該實例指定的相對路徑中的reference文件中的文件。

簽名:

export declare function doc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, path: string, ...pathSegments: string[]): DocumentReference<DocumentData, DocumentData>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對Firestore文件的引用。
小路細繩文檔分隔的路徑。
路徑細繩[]相對於第一個參數將會套用的其他路徑段。

返回:

DocumentReference <文檔數據,文檔數據>

DocumentReference實例。

例外情況

如果最終路徑具有奇數段,並且沒有指向文件。

取得文件(參考)

讀取指定文檔參考的文檔。

即使先前已讀取或修改了文檔,所有文檔也直接從伺服器中取得。最近的修改僅在已檢索的DocumentSnapshot中反映在後端已應用時。如果客戶端離線,則讀取失敗。如果您想使用快取或查看本機修改,請使用完整的Firestore SDK。

簽名:

export declare function getDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>): Promise<DocumentSnapshot<AppModelType, DbModelType>>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>文件提取的參考。

返回:

Promise < documentsnapshot <AppModelType,dbModelType >>

使用包含當前文檔內容的DocumentSnapshot解決的承諾。

setDoc(參考,數據)

寫信給指定的DocumentReference所指的文檔。如果文件尚不存在,將會建立它。

本文的結果只會反映在傳回的承諾消除後發生的文檔讀取。如果客戶端處於離線狀態,則寫入失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function setDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): Promise<void>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對要寫的文檔的引用。
數據與FieldValue <AppModelType>文檔的欄位和值地圖。

返回:

承諾<無效>

一旦資料成功寫給後端,就解決了Promise

例外情況

錯誤 - 如果提供的輸入不是有效的Firestore文件。

setDoc(參考、數據、選項)

寫信給指定的DocumentReference所指的文檔。如果文件尚不存在,將會建立它。如果您提供mergemergeFields ,提供的數據可以合併到現有文件中。

本文的結果只會反映在傳回的承諾消除後發生的文檔讀取。如果客戶端處於離線狀態,則寫入失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function setDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): Promise<void>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對要寫的文檔的引用。
數據partialwithfieldValue <AppModelType>文檔的欄位和值地圖。
選項setOptions配置設定行為的物件。

返回:

承諾<無效>

一旦資料成功寫給後端,就解決了Promise

例外情況

錯誤 - 如果提供的輸入不是有效的Firestore文件。

UpdatedOC(參考,數據)

更新指定的DocumentReference介紹的文檔中的字段。如果套用於不存在的文檔,則更新將失敗。

此更新的結果只會反映在傳回的承諾解決後發生的文件讀取。如果客戶端離線,則更新失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function updateDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): Promise<void>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對要更新的文檔的引用。
數據更新<dbmodeltype>包含更新文檔的欄位和值的物件。欄位可以包含點以引用文件中的嵌套欄位。

返回:

承諾<無效>

一旦資料成功寫給後端,就解決了Promise

例外情況

錯誤 - 如果提供的輸入不是有效的Firestore資料。

updateDoc(參考、欄位、值、moreFieldsAndValues)

指定DocumentReference所指的文檔中的更新欄位如果應用於不存在的文檔,則更新將失敗。

可以透過提供DOT分隔的欄位路徑字串或提供FieldPath物件來更新巢狀欄位。

此更新的結果只會反映在傳回的承諾解決後發生的文件讀取。如果客戶端離線,則更新失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的Firestore SDK。

簽名:

export declare function updateDoc<AppModelType, DbModelType extends DocumentData>(reference: DocumentReference<AppModelType, DbModelType>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): Promise<void>;

參數

範圍類型描述
參考DocumentReference <AppModelType,DBModelType>對要更新的文檔的引用。
場地字串|字段路徑更新的第一個字段。
價值未知第一個值。
Morefieldsandvalues未知[]附加鍵值對。

返回:

承諾<無效>

一旦資料成功寫給後端,就解決了Promise

例外情況

錯誤 - 如果提供的輸入不是有效的Firestore資料。

功能(快照,...)

Endat(快照)

建立一個QueryEndatConstraint ,將結果修改為在提供的文件(包含)以結束的結果。終端位置相對於查詢的順序。該文件必須包含查詢順序中提供的所有欄位。

簽名:

export declare function endAt<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryEndAtConstraint;

參數

範圍類型描述
快照DocumentsNapshot <AppModelType,DBModelType>文件的快照將結束。

返回:

queryendatConstraint

QueryEndatConstraint傳遞給query()

Endbefore(快照)

建立一個QueryEndatConstraint ,將結果設定修改為在提供的文件之前結束(獨家)。終端位置相對於查詢的順序。該文件必須包含查詢順序中提供的所有欄位。

簽名:

export declare function endBefore<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryEndAtConstraint;

參數

範圍類型描述
快照DocumentsNapshot <AppModelType,DBModelType>文件的快照以前要結束。

返回:

queryendatConstraint

QueryEndatConstraint傳遞給query()

starterafter(快照)

建立一個QueryStartatConstraint ,該詢問修改結果設定在提供的文件之後開始(獨家)。起始位置相對於查詢的順序。該文件必須包含查詢順序中提供的所有欄位。

簽名:

export declare function startAfter<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryStartAtConstraint;

參數

範圍類型描述
快照DocumentsNapshot <AppModelType,DBModelType>文件的快照將在此之後開始。

返回:

querystartatconstraint

QueryStartatConstraint以傳遞到query()

Startat(快照)

建立一個QueryStartAtconstraint ,可修改在提供的文件(包含在內)啟動的結果設定。起始位置相對於查詢的順序。該文件必須包含此查詢orderBy中提供的所有欄位。

簽名:

export declare function startAt<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryStartAtConstraint;

參數

範圍類型描述
快照DocumentsNapshot <AppModelType,DBModelType>文件的快照開始。

返回:

querystartatconstraint

QueryStartatConstraint以傳遞到query()

addprefixtokeys

傳回一個新的地圖,其中每個鍵都在附加到點的外鍵前綴。

簽名:

export declare type AddPrefixToKeys<Prefix extends string, T extends Record<string, unknown>> = {
    [K in keyof T & string as `${Prefix}.${K}`]+?: string extends K ? any : T[K];
};

匯總FieldType

Firestore支援的所有AggregateField類型的結合。

簽名:

export declare type AggregateFieldType = ReturnType<typeof sum> | ReturnType<typeof average> | ReturnType<typeof count>;

骨材pecdata

AggregateSpec中取的鍵的類型,以及其AggregateSpec是從輸入AggregateField

簽名:

export declare type AggregateSpecData<T extends AggregateSpec> = {
    [P in keyof T]: T[P] extends AggregateField<infer U> ? U : never;
};

聚合類型

代表要執行的聚合類型的聯合類型。

簽名:

export declare type AggregateType = 'count' | 'avg' | 'sum';

Childupdatefields

用於計算給定T1的嵌套欄位的助手。這是分發聯合類型(例如undefined | {...}所需的。 undefined | {...} (用於可選的道具發生)或{a: A} | {b: B}

在此用例中, V用於RecordT[K]的聯合類型,因為T[K]被評估為表達式而不是分佈。

請參閱https://www.typescriptlang.org/docs/handbook/advanced-types.html#distribnation-conditional-types

簽名:

export declare type ChildUpdateFields<K extends string, V> = V extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<V>> : never;

firestoreErrorCode

Firestore狀態碼集。 grpc在此處暴露的程式碼是相同的:

可能的值: - “取消”:操作已取消(通常由呼叫者)。 - “未知”:未知錯誤或來自其他錯誤域的錯誤。 - “無效 - argument”:客戶端指定了一個無效的參數。請注意,這不同於「失敗至關」。 「無效的題詞」指出了有問題的參數,無論系統狀態如何(例如,欄位名稱無效)。 - 「截止日期」:截止日期在操作完成之前已過期。對於更改系統狀態的操作,即使操作成功完成,也可以傳回此錯誤。例如,伺服器的成功回應可能已經延遲了足夠長的時間,以使截止日期到期。 - 'NOTUNDONG':找不到一些要求的檔案。 - 「已經存在的」:我們嘗試建立的一些文件已經存在。 - 「限制權限」:呼叫者無權執行指定的操作。 - 「資源 - 偏項」:某些資源已經用盡,可能是每個使用者配額,或整個檔案系統都超出了空間。 - 「失敗至上」:操作被拒絕,因為該系統不處於操作執行所需的狀態。 - 「中止」:此操作被中止,通常是由於交易中止等並發問題。-「 Out-range':Operation':操作已超過有效範圍。 - '未完成':未實現或不支援/啟用操作。 - '內部':內部錯誤。意味著某些基本系統預期的不變​​性已被打破。如果您看到這些錯誤之一,那麼某些事情就會非常損壞。 - 「不可用」:該服務目前無法使用。這很可能是瞬態條件,可以透過退縮重試來修正。 - 「資料損失」:無法復原的資料遺失或損壞。 - 「未經驗證」:此要求沒有對操作的有效身份驗證憑證。

簽名:

export declare type FirestoreErrorCode = 'cancelled' | 'unknown' | 'invalid-argument' | 'deadline-exceeded' | 'not-found' | 'already-exists' | 'permission-denied' | 'resource-exhausted' | 'failed-precondition' | 'aborted' | 'out-of-range' | 'unimplemented' | 'internal' | 'unavailable' | 'data-loss' | 'unauthenticated';

Nestedupdatefields

對於每個欄位(例如'bar'),找到所有巢狀鍵(例如{ 'bar.baz':t1,'bar.qux':t2 } )。將它們相交在一起,製作一個包含所有可能標記為可選的鍵的單一地圖

簽名:

export declare type NestedUpdateFields<T extends Record<string, unknown>> = UnionToIntersection<{
    [K in keyof T & string]: ChildUpdateFields<K, T[K]>;
}[keyof T & string]>;

按方向訂購

訂單()子句的方向指定為“ desc”或“ asc”(降序或上升)。

簽名:

export declare type OrderByDirection = 'desc' | 'asc';

partialwithfieldValue

類似打字稿的Partial<T> ,但允許省略嵌套字段,並以屬性值的形式傳遞fieldValues。

簽名:

export declare type PartialWithFieldValue<T> = Partial<T> | (T extends Primitive ? T : T extends {} ? {
    [K in keyof T]?: PartialWithFieldValue<T[K]> | FieldValue;
} : never);

原始

原始型別。

簽名:

export declare type Primitive = string | number | boolean | undefined | null;

查詢約束類型

描述此 SDK 中可用的不同查詢約束。

簽名:

export declare type QueryConstraintType = 'where' | 'orderBy' | 'limit' | 'limitToLast' | 'startAt' | 'startAfter' | 'endAt' | 'endBefore';

QueryFilterConstraint

QueryFilterConstraint是一種輔助聯合類型,代表QueryFieldFilterConstraintQueryCompositeFilterConstraint

簽名:

export declare type QueryFilterConstraint = QueryFieldFilterConstraint | QueryCompositeFilterConstraint;

querynonfilterconstraint

QueryNonFilterConstraint是一種輔助聯合類型,代表用於縮小或訂購一組文件的QueryConstraints,但不會在文件欄位上明確過濾。 QueryNonFilterConstraint s是透過呼叫orderby()來創建的,開始處() ,開始之後() ,結束之前()endat()limit()limittolast() ,然後可以傳遞到query()建立一個新的查詢實例,該實例還包含QueryConstraint

簽名:

export declare type QueryNonFilterConstraint = QueryOrderByConstraint | QueryLimitConstraint | QueryStartAtConstraint | QueryEndAtConstraint;

setOptions

配置setDoc()行為的選項對象,並打電話。這些呼叫可以配置為執行顆粒狀合併,而不是透過提供合併的SetOptions來完整地覆蓋目標文件merge: true

簽名:

export declare type SetOptions = {
    readonly merge?: boolean;
} | {
    readonly mergeFields?: Array<string | FieldPath>;
};

聯合助力

給定一個Union Type U = T1 | T2 | ... ,返回相交類型(T1 & T2 & ...)

使用有條件類型的分配條件類型和推論。之所以起作用,是因為相反位置中相同類型變數的多個候選物會導致相交類型。 https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-in​​perionpe-perion-inperion-in-conditional-types https://stackoverflow.com/questions/questions /50374908/trans-trans-form-type-type-type-type-type-type-in​​tercection -類型

簽名:

export declare type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;

更新

更新資料(用於UpdatedOc() )由映射到值的野外路徑(例如'foo'或'foo.baz')組成。包含DOT的字段參考文檔中的嵌套字段。字段值可以作為屬性值傳遞。

簽名:

export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
    [K in keyof T]?: UpdateData<T[K]> | FieldValue;
} & NestedUpdateFields<T> : Partial<T>;

filterop

使用字串' lt;','&lt; =','==','!=','&gt; =',','&gt;','array-contains',使用字串'&lt; =','==',',',',',',',',',',',',',',',',',',',',',', ',',',! ,“ in”,“ array-contains-”和“ Not-In”。

簽名:

export declare type WhereFilterOp = '<' | '<=' | '==' | '!=' | '>=' | '>' | 'array-contains' | 'in' | 'array-contains-any' | 'not-in';

與FieldValue

在維持類型安全性的同時,允許將現場價值作為屬性值傳遞。

簽名:

export declare type WithFieldValue<T> = T | (T extends Primitive ? T : T extends {} ? {
    [K in keyof T]: WithFieldValue<T[K]> | FieldValue;
} : never);