功能
功能 | 描述 |
---|---|
函數(應用程序,...) | |
取得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_INTEGER 到Number.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 引用的文件。如果該文件尚不存在,則會建立該文件。如果您提供merge 或mergeFields ,則提供的資料可以合併到現有文件中。此寫入的結果只會反映在傳回的 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 方法進行枚舉。文件的數量可以透過empty 和size 屬性來決定。 |
查詢開始約束 | QueryStartAtConstraint 用於從 Firestore 查詢傳回的結果集的開頭排除文件。 QueryStartAtConstraint 是透過呼叫startAt()或startAfter()建立的,然後可以傳遞給query()以建立一個也包含此QueryStartAtConstraint 的新查詢實例。 |
時間戳 | Timestamp 表示獨立於任何時區或日曆的時間點,以 UTC 紀元時間中奈秒分辨率的秒和秒的分數表示。它使用 Proleptic 公曆進行編碼,將公曆向後延伸到第一年。它的編碼假定所有分鐘都是 60 秒長,即閏秒被“塗抹”,因此不需要閏秒錶來解釋。範圍從 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59.999999999Z。有關範例和更多規範,請參閱時間戳定義。 |
交易 | 對交易的引用。傳遞給交易的updateFunction 的Transaction 物件提供在事務上下文中讀取和寫入資料的方法。參見runTransaction() 。 |
寫批次處理 | 寫入批次處理,用於將多個寫入作為單一原子單元執行。可以透過呼叫writeBatch()來取得WriteBatch 對象。它提供了將寫入添加到寫入批次的方法。在呼叫WriteBatch.commit()之前,不會提交任何寫入(或在本地可見)。 |
介面
介面 | 描述 |
---|---|
聚合規格 | 指定一組聚合及其別名。 |
文件資料 | 文件資料(與setDoc()一起使用) 由對應到值的欄位組成。 |
Firestore資料轉換器 | withConverter() 使用轉換器將AppModelType 類型的使用者物件轉換為DbModelType 類型的 Firestore 資料。使用轉換器可讓您在從 Firestore 儲存和擷取物件時指定通用類型參數。在這種情況下,「AppModel」是在應用程式中用於將相關資訊和功能打包在一起的類別。例如,這樣的類別可以具有複雜巢狀資料類型的屬性、用於記憶的屬性、Firestore 不支援的類型的屬性(例如symbol 和bigint )以及執行複合操作的輔助函數。此類類別不適合和/或無法儲存到 Firestore 資料庫中。相反,此類別的實例需要轉換為具有專有原始屬性的「普通舊 JavaScript 物件」(POJO),可能嵌套在其他 POJO 或 POJO 陣列中。在此上下文中,此類型稱為“DbModel”,並且是適合持久保存到 Firestore 中的物件。為了方便起見,應用程式可以實作FirestoreDataConverter 並向 Firestore 物件(例如DocumentReference 或Query 註冊轉換器,以便在儲存到 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 是表示QueryFieldFilterConstraint和QueryCompositeFilterConstraint的輔助聯合類型。 |
查詢非過濾約束 | QueryNonFilterConstraint 是一種輔助聯合類型,表示 QueryConstraint,用於縮小或排序文件集,但不會明確過濾文件欄位。 QueryNonFilterConstraint 透過呼叫orderBy()來創建,開始處() ,開始之後() ,結束之前() ,結束 () 、 limit()或limitToLast() ,然後可以傳遞給query()以建立一個也包含QueryConstraint 新查詢實例。 |
設定選項 | 配置setDoc()行為的選項對象,並撥打電話。可以將這些呼叫配置為執行粒度合併,而不是透過提供帶有merge: true 的SetOptions 來完全覆蓋目標文件。 |
並集到交集 | 給定一個聯合類型U = T1 | T2 | ... ,返回相交類型(T1 & T2 & ...) 。使用分佈式條件類型和條件類型的推論。這是有效的,因為逆變位置中同一類型變數的多個候選者會導致推斷出交集類型。 https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-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”)排序。如果未指定,訂單將上升。 |
返回:
其中(欄位路徑、opStr、值)
建立一個QueryFieldFilterConstraint ,該文件執行該文件必須包含指定字段,並且該值應滿足所提供的關係約束。
簽名:
export declare function where(fieldPath: string | FieldPath, opStr: WhereFilterOp, value: unknown): QueryFieldFilterConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
野外路徑 | 字串|字段路徑 | 比較的途徑 |
OPSTR | filterop | 操作字串(例如“&lt;”,“”,“&lt; =”,“ ==”,“”&lt;“,”&lt; =“,”,“!=”)。 |
價值 | 未知 | 比較值 |
返回:
創建的QueryFieldFilterConstraint 。
函數(fieldvalues,...)
Endat(fieldvalues)
建立一個QueryEndatConstraint ,可修改結果設定以在提供的欄位相對於查詢的順序結束。欄位值的順序必須與查詢條款的子句相符。
簽名:
export declare function endAt(...fieldValues: unknown[]): QueryEndAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
現場值 | 未知[] | 按查詢以查詢順序結束此查詢的欄位值。 |
返回:
QueryEndatConstraint傳遞給query()
結束之前(欄位值)
建立一個QueryEndatConstraint ,將結果修改為在提供的欄位相對於查詢順序之前結束。欄位值的順序必須與查詢條款的子句相符。
簽名:
export declare function endBefore(...fieldValues: unknown[]): QueryEndAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
現場值 | 未知[] | 以查詢順序順序結束此查詢之前的欄位值。 |
返回:
QueryEndatConstraint傳遞給query()
開始之後(欄位值)
建立一個QueryStartatConstraint ,該查詢將修改結果設定在提供的欄位相對於查詢順序之後開始。欄位值的順序必須與查詢條款的子句相符。
簽名:
export declare function startAfter(...fieldValues: unknown[]): QueryStartAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
現場值 | 未知[] | 按查詢依查詢順序依序啟動此查詢的欄位值。 |
返回:
QueryStartatConstraint以傳遞到query()
startat(fieldvalues)
建立一個QueryStartAtconstraint ,可修改結果設置,以從提供的欄位開始相對於查詢的順序。欄位值的順序必須與查詢條款的子句相符。
簽名:
export declare function startAt(...fieldValues: unknown[]): 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;
參數
範圍 | 類型 | 描述 |
---|---|---|
限制 | 數位 | 傳回的最大項目數。 |
返回:
建立的查詢限制。
限製到最後(限制)
建立一個僅傳回最後一個符合的文件的查詢限制。
您必須至少為limitToLast
查詢指定至少一個orderBy
條款,否則在執行期間將拋出一個例外。
簽名:
export declare function limitToLast(limit: number): QueryLimitConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
限制 | 數位 | 傳回的最大項目數。 |
返回:
建立的查詢限制。
功能(Loglevel,...)
setLoglevel(loglevel)
設定Cloud Firestore日誌的詳細性(調試,錯誤或無聲)。
簽名:
export declare function setLogLevel(logLevel: LogLevel): void;
參數
範圍 | 類型 | 描述 |
---|---|---|
日誌等級 | 日誌等級 | 您設定的活動和錯誤記錄的詳細性。可以是以下任何值:
|
返回:
空白
功能(n,...)
增量(n)
傳回可以與setDoc()或updatedoc()一起使用的特殊值,該值告訴伺服器透過給定值增加欄位的目前值。
如果操作數或目前場值使用浮點精確度,則所有算術均遵循IEEE 754語意。如果兩個值都是整數,則在JavaScript的安全號碼範圍之外( Number.MIN_SAFE_INTEGER
到Number.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
實例。
例外情況
如果最終路徑具有奇數段,並且沒有指向文件。
取得文件(參考)
讀取指定文檔參考的文檔。
即使先前已讀取或修改了文檔,所有文檔也直接從伺服器中取得。最近的修改僅在已檢索的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
所指的文檔。如果文件尚不存在,將會建立它。如果您提供merge
或mergeFields
,提供的數據可以合併到現有文件中。
本文的結果只會反映在傳回的承諾消除後發生的文檔讀取。如果客戶端處於離線狀態,則寫入失敗。如果您想查看本地修改或緩衝區寫作,直到客戶在線為止,請使用完整的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傳遞給query()
Endbefore(快照)
建立一個QueryEndatConstraint ,將結果設定修改為在提供的文件之前結束(獨家)。終端位置相對於查詢的順序。該文件必須包含查詢順序中提供的所有欄位。
簽名:
export declare function endBefore<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryEndAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
快照 | DocumentsNapshot <AppModelType,DBModelType> | 文件的快照以前要結束。 |
返回:
QueryEndatConstraint傳遞給query()
starterafter(快照)
建立一個QueryStartatConstraint ,該詢問修改結果設定在提供的文件之後開始(獨家)。起始位置相對於查詢的順序。該文件必須包含查詢順序中提供的所有欄位。
簽名:
export declare function startAfter<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryStartAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
快照 | DocumentsNapshot <AppModelType,DBModelType> | 文件的快照將在此之後開始。 |
返回:
QueryStartatConstraint以傳遞到query()
Startat(快照)
建立一個QueryStartAtconstraint ,可修改在提供的文件(包含在內)啟動的結果設定。起始位置相對於查詢的順序。該文件必須包含此查詢orderBy
中提供的所有欄位。
簽名:
export declare function startAt<AppModelType, DbModelType extends DocumentData>(snapshot: DocumentSnapshot<AppModelType, DbModelType>): QueryStartAtConstraint;
參數
範圍 | 類型 | 描述 |
---|---|---|
快照 | DocumentsNapshot <AppModelType,DBModelType> | 文件的快照開始。 |
返回:
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
用於Record
到T[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
是一種輔助聯合類型,代表QueryFieldFilterConstraint和QueryCompositeFilterConstraint 。
簽名:
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-inperionpe-perion-inperion-in-conditional-types https://stackoverflow.com/questions/questions /50374908/trans-trans-form-type-type-type-type-type-type-intercection -類型
簽名:
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);