database package

Firebase 即時資料庫

功能

功能描述
函數(應用程序,...)
取得資料庫(應用程序,網址)傳回與提供的FirebaseApp關聯的即時資料庫 SDK 的實例。如果不存在實例或現有實例使用自訂資料庫 URL,則使用預設設定初始化新實例。
函數(資料庫,...)
connectDatabaseEmulator(資料庫,主機,端口,選項)修改提供的實例以與即時資料庫模擬器通訊。

注意:必須在執行任何其他操作之前呼叫此方法。

脫機(db)與伺服器斷開連接(所有資料庫操作將離線完成)。客戶端自動維護與資料庫伺服器的持久連接,該連接將無限期地保持活動狀態並在斷開連接時重新連接。但是,在不需要持久連線的情況下,可以使用goOffline()goOnline()方法來控制客戶端連線。離線時,客戶端將不再從資料庫接收資料更新。但是,本地執行的所有資料庫操作將繼續立即觸發事件,從而允許您的應用程式繼續正常運行。此外,本地執行的每個操作將自動排隊並在重新連接到資料庫伺服器時重試。若要重新連線到資料庫並開始接收遠端事件,請參閱goOnline()
上網(db)重新連接到伺服器並將離線資料庫狀態與伺服器狀態同步。應在使用goOffline()停用活動連線後使用此方法。重新連接後,客戶端將傳輸正確的資料並觸發適當的事件,以便您的客戶端自動「趕上」。
參考(資料庫,路徑)傳回一個Reference表示資料庫中與所提供的路徑相對應的位置。如果未提供路徑, Reference將指向資料庫的根目錄。
refFromURL(資料庫,網址)傳回一個Reference表示資料庫中與所提供的 Firebase URL 相對應的位置。如果 URL 不是有效的 Firebase 資料庫 URL 或其網域與目前Database執行個體不同,則會引發例外狀況。請注意,所有查詢參數( orderBylimitToLast等)都會被忽略,並且不會套用於傳回的Reference
功能()
強制長輪詢()強制使用 longPolling 而不是 websockets。如果databaseURL中使用了websocket協議,這將被忽略。
強制WebSockets()強制使用 websockets 而不是 longPolling。
按鍵排序()建立一個按鍵排序的新QueryConstraint按(升序)鍵值對查詢結果進行排序。您可以在排序資料中閱讀有關orderByKey()的更多信息
按優先順序排序()建立一個按優先順序排序的新QueryConstraint應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(有關優先級的替代方案,請參閱排序資料
按值排序()建立一個按值排序的新QueryConstraint如果查詢的子項都是標量值(字串、數字或布林值),您可以按它們的(升序)值對結果進行排序。您可以在排序資料中閱讀有關orderByValue()的更多信息
伺服器時間戳()傳回佔位符值,用於自動填入 Firebase 伺服器所確定的目前時間戳記(自 Unix 紀元以來的時間,以毫秒為單位)。
函數(增量,...)
增量(增量)傳回一個佔位符值,可用於以提供的增量以原子方式增加目前資料庫值。
功能(啟用,...)
啟用日誌記錄(已啟用,持久)將偵錯資訊記錄到控制台。
函數(極限,...)
限製到第一個(限制)建立一個新的QueryConstraint ,將其限制為第一個特定數量的子項。 limitToFirst()方法用於設定給定回調要同步的子級的最大數量。如果我們將限制設為 100,則最初最多只會收到 100 個child_added事件。如果資料庫中儲存的訊息少於 100 條,則每個訊息都會觸發child_added事件。但是,如果我們有超過 100 條訊息,我們將只收到前 100 條有序訊息的child_added事件。當項目變更時,我們將為從活動清單中刪除的每個項目接收child_removed事件,以便總數保持在 100。您可以在過濾資料中閱讀有關limitToFirst()的更多信息
限製到最後(限制)建立一個新的QueryConstraint ,該約束僅限於傳回最後指定數量的子項。 limitToLast()方法用於設定給定回調要同步的子級的最大數量。如果我們將限制設為 100,則最初最多只會收到 100 個child_added事件。如果資料庫中儲存的訊息少於 100 條,則每個訊息都會觸發child_added事件。但是,如果我們有超過 100 條訊息,我們將只收到最後 100 條有序訊息的child_added事件。當項目變更時,我們將為從活動清單中刪除的每個項目接收child_removed事件,以便總數保持在 100。您可以在過濾資料中閱讀有關limitToLast()的更多信息
函數(記錄器,...)
啟用日誌記錄(記錄器)將偵錯資訊記錄到控制台。
函數(父級,...)
子級(父級,路徑)取得指定相對路徑位置的Reference相對路徑可以是簡單的子名稱(例如“ada”),也可以是更深的斜線分隔路徑(例如“ada/name/first”)。
推送(父級,值)使用唯一鍵產生新的子位置並返回其Reference這是向項目集合添加資料的最常見模式。如果您向push()提供一個值,則該值將寫入生成的位置。如果您不傳遞值,則不會將任何內容寫入資料庫,且子層級仍為空(但您可以在其他地方使用Reference )。 push()產生的唯一鍵依目前時間排序,因此產生的項目清單會依時間順序排序。密鑰也被設計為不可猜測(它們包含 72 個隨機位元的熵)。請參閱附加到資料列表。請參閱確保唯一識別碼的 2^120 種方法
函數(路徑,...)
orderByChild(路徑)建立一個按指定子鍵排序的新QueryConstraint查詢一次只能按一個鍵排序。對同一個查詢多次呼叫orderByChild()會出錯。 Firebase 查詢可讓您即時透過任何子鍵對資料進行排序。但是,如果您事先知道索引是什麼,則可以透過安全規則中的 .indexOn 規則定義它們,以獲得更好的效能。有關詳細信息,請參閱https://firebase.google.com/docs/database/security/indexing-data規則。您可以在排序資料中閱讀有關orderByChild()的更多信息
函數(查詢,...)
取得(查詢)取得此查詢的最新結果。
關閉(查詢、事件類型、回呼)分離先前附加到對應on ()onValueonChildAdded )偵聽器的回調。注意:這不是刪除偵聽器的建議方法。相反,請使用對應on回呼傳回的回呼函數。分離之前用on*()附加的回調。在父偵聽器上呼叫off()不會自動刪除在子節點上註冊的偵聽器,也必須在任何子偵聽器上呼叫off()才能刪除回呼。如果未指定回調,則將刪除指定事件類型的所有回調。同樣,如果未指定 eventType,則將刪除Reference的所有回呼。也可以透過呼叫取消訂閱回呼來刪除單一偵聽器。
onChildAdded(查詢、回呼、cancelCallback)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildAdded(查詢、回呼、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildAdded(查詢,回調,cancelCallback,選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildChanged(查詢、回呼、cancelCallback)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildChanged(查詢、回呼、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildChanged(查詢、回呼、cancelCallback、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildMoved(查詢、回呼、cancelCallback)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildMoved(查詢、回呼、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildMoved(查詢、回呼、cancelCallback、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null
onChildRemoved(查詢,回調,cancelCallback)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除: - 客戶端在該子項目或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 現在有一個有效的查詢過濾掉子項(因為它的排序順序已更改或達到了最大限制)
onChildRemoved(查詢、回呼、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除: - 客戶端在該子項目或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 現在有一個有效的查詢過濾掉子項(因為它的排序順序已更改或達到了最大限制)
onChildRemoved(查詢,回調,cancelCallback,選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除: - 客戶端在該子項目或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 現在有一個有效的查詢過濾掉子項(因為它的排序順序已更改或達到了最大限制)
onValue(查詢、回呼、cancelCallback)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料 onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。
onValue(查詢、回呼、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料 onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。
onValue(查詢、回呼、cancelCallback、選項)監聽特定位置的資料變化。這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料 onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。
查詢(查詢,查詢約束)建立一個新的非可變Query實例,該實例已擴展為還包含其他查詢約束。
函數(參考,...)
onDisconnect(參考)傳回一個OnDisconnect物件 - 有關如何使用它的更多信息,請參閱在 JavaScript 中啟用離線功能
刪除(參考)刪除此資料庫位置的資料。子位置的所有資料也將被刪除。刪除的效果將立即可見,並將觸發相應的事件「值」。也會開始同步刪除到 Firebase 伺服器,並且傳回的 Promise 將在完成後解析。如果提供,則同步完成後將非同步呼叫 onComplete 回呼。
runTransaction(ref, transactionUpdate, 選項)以原子方式修改此位置的資料。原子修改此位置的資料。與普通的set()不同,普通的 set() 只會覆蓋數據,而不管其先前的值如何, runTransaction()用於將現有值修改為新值,確保與其他客戶端同時寫入相同位置不會發生衝突。為了實現這一點,您可以向runTransaction()傳遞一個更新函數,該函數用於將當前值轉換為新值。如果在成功寫入新值之前另一個用戶端寫入該位置,則將使用新的目前值再次呼叫您的更新函數,並且將重試寫入。這將重複發生,直到您的寫入成功且沒有衝突,或者您透過不從更新函數傳回值來中止交易。注意:使用set()修改資料將取消該位置的任何待處理事務,因此如果混合使用set()runTransaction()來更新相同的數據,應格外小心。注意:在使用具有安全性和 Firebase 規則的事務時,請注意,客戶端除了.write存取權限之外還需要.read存取權限才能執行事務。這是因為事務的客戶端性質要求客戶端讀取資料以便以事務方式更新它。
設定(參考,值)將資料寫入此資料庫位置。這將覆蓋該位置和所有子位置的所有資料。寫入的效果將立即可見,並會觸發對應的事件(「value」、「child_added」等)。資料同步到Firebase伺服器也將開始,完成後回傳的Promise將會被解析。如果提供,則同步完成後將非同步呼叫onComplete回呼。為新值傳遞null相當於呼叫remove() ;即,該位置和所有子位置的所有資料都將被刪除。 set()將刪除儲存在該位置的任何優先級,因此如果要保留優先級,則需要使用setWithPriority()代替。請注意,使用set()修改資料將取消該位置的任何待處理事務,因此如果混合set()transaction()修改相同數據,應格外小心。單一set()將在執行set()的位置產生單一「值」事件。
設定優先權(參考,優先權)設定此資料庫位置的資料的優先順序。應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(請參閱排序和過濾資料)。
setWithPriority(參考,值,優先權)將資料寫入資料庫位置。與set()類似,但也指定該資料的優先權。應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(請參閱排序和過濾資料)。
更新(參考,值)一次將多個值寫入資料庫。 values參數包含多個屬性-值對,這些屬性-值對將一起寫入資料庫。每個子屬性可以是簡單屬性(例如「name」),也可以是從目前位置到要更新的資料的相對路徑(例如「name/first」)。set()方法相反, update()可用於選擇性地僅更新目前位置處所引用的屬性(而不是替換目前位置處的所有子屬性)。寫入的效果將立即可見,並會觸發對應的事件('value'、'child_added'等)。資料同步到Firebase伺服器也將開始,完成後回傳的Promise將會被解析。如果提供,則同步完成後將非同步呼叫onComplete回呼。單一update()將在執行update()的位置產生單一「值」事件,無論修改了多少個子項。請注意,使用update()修改資料將取消該位置的任何待處理事務,因此如果混合update()transaction()修改相同數據,應格外小心。null傳遞給update()將刪除該位置的資料。參閱引入多位置更新等
函數(值,...)
結束處(值,鍵)建立具有指定終點的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允許您為查詢選擇任意起點和終點。終點是包含的,因此具有指定值的子項將包含在查詢中。可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有指定值的子項也必須具有小於或等於指定鍵的鍵名。您可以在過濾資料中閱讀有關endAt()的更多信息
結束之前(值,鍵)建立具有指定終點(不包括終點)的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允許您為查詢選擇任意起點和終點。終點是唯一的。如果僅提供一個值,則值小於指定值的子項將包含在查詢中。如果指定了鍵,則子層級的值必須小於或等於指定的值,且鍵名稱小於指定的鍵。
equalTo(值,鍵)建立一個包含與指定值相符的子項目的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允許您為查詢選擇任意起點和終點。可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有完全相同的指定值的子級也必須具有完全相同的指定鍵作為其鍵名稱。這可用於過濾具有相同值的許多匹配項的結果集。您可以在過濾資料中閱讀有關equalTo()的更多信息
開始之後(值,鍵)建立具有指定起點(不包括起點)的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允許您為查詢選擇任意起點和終點。起點是排他性的。如果僅提供一個值,則值大於指定值的子項將包含在查詢中。如果指定了鍵,則子層級的值必須大於或等於指定的值,且鍵名稱大於指定的鍵。
開始時間(值,鍵)建立具有指定起點的QueryConstraint使用startAt()startAfter()endBefore()endAt()equalTo()允許您為查詢選擇任意起點和終點。起始點是包含的,因此具有指定值的子項將包含在查詢中。可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有指定值的子項也必須具有大於或等於指定鍵的鍵名。您可以在過濾資料中閱讀有關startAt()的更多信息

課程

班級描述
資料庫表示 Firebase 即時資料庫的類別。
數據快照DataSnapshot包含來自資料庫位置的資料。每當您從資料庫讀取資料時,您都會收到DataSnapshot形式的資料。 DataSnapshot將傳遞到您使用on()once()附加的事件回呼。您可以透過呼叫val()方法將快照的內容提取為 JavaScript 物件。或者,您可以透過呼叫child()來遍歷快照以傳回子快照(然後您可以對其呼叫val() )。 DataSnapshot是資料庫位置上有效產生的、不可變的資料副本。它無法修改,也永遠不會改變(要修改數據,您總是直接在Reference上呼叫set()方法)。
斷開連線時onDisconnect類別可讓您在客戶端與資料庫伺服器斷開連線時寫入或清除資料。無論您的用戶端是否完全斷開連接,這些更新都會發生,因此即使連線中斷或用戶端崩潰,您也可以依靠它們來清理資料。 onDisconnect類別最常用於管理應用程式中的狀態,可用於偵測連線的用戶端數量以及其他用戶端何時斷開連線。有關詳細信息,請參閱在 JavaScript 中啟用離線功能為了避免在請求傳輸到資料庫伺服器之前連接中斷時出現問題,應在寫入任何資料之前呼叫這些函數。請注意, onDisconnect操作僅觸發一次。如果您希望每次斷開連線時都執行一個操作,則需要在每次重新連線時重新建立onDisconnect操作。
查詢約束QueryConstraint用於縮小資料庫查詢傳回的文件集。 QueryConstraint透過呼叫endAt()來創建,結束之前() ,開始處() ,開始之後() , limitToFirst() , limitToLast() , orderByChild() , orderByChild()orderByKey()orderByPriority()orderByValue()equalTo()然後可以傳遞給query()以建立也包含此QueryConstraint的新查詢實例。
交易結果runTransaction()的解析值的類型

介面

介面描述
資料庫參考DatabaseReference代表資料庫中的特定位置,可用於在該資料庫位置讀取或寫入資料。您可以透過呼叫ref()ref("child/path")引用資料庫中的根位置或子位置。寫入可以透過set()方法完成,讀取可以透過on*()方法完成。請參閱https://firebase.google.com/docs/database/web/read-and-write
迭代資料快照表示正在迭代的Reference的子快照。鍵永遠不會是未定義的。
監聽選項可用於自訂偵聽器的選項物件。
詢問Query對資料庫位置的資料進行排序和過濾,以便僅包含子資料的子集。這可用於按某些屬性(例如恐龍的高度)對資料集合進行排序,以及將大型項目清單(例如聊天訊息)限制為適合與客戶端同步的數量。查詢是透過將此處定義的一個或多個過濾器方法連結在一起來建立的。就像DatabaseReference一樣,您可以使用on*()方法從Query接收資料。您將只接收與您的查詢相符的資料子集的事件和DataSnapshot有關詳細信息,請參閱https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data
可參考Push()返回時也可以充當DatabaseReference Promise 。該引用立即可用,並且Promise在後端寫入完成時解析。
交易選項用於配置交易的選項物件。

類型別名

類型別名描述
事件類型以下字串之一:「value」、「child_added」、「child_changed」、「child_removed」或「child_moved」。
查詢約束類型描述此 SDK 中可用的不同查詢約束。
退訂可以呼叫以刪除偵聽器的回調。

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

取得資料庫(應用程序,網址)

傳回與提供的FirebaseApp關聯的即時資料庫 SDK 的實例。如果不存在實例或現有實例使用自訂資料庫 URL,則使用預設設定初始化新實例。

簽名:

export declare function getDatabase(app?: FirebaseApp, url?: string): Database;

參數

範圍類型描述
應用程式Firebase應用程式傳回的即時資料庫實例關聯的FirebaseApp實例。
網址細繩要連接的即時資料庫執行個體的 URL。如果未提供,SDK 將連接到 Firebase 應用程式的預設實例。

返回:

資料庫

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

函數(資料庫,...)

connectDatabaseEmulator(資料庫,主機,端口,選項)

修改提供的實例以與即時資料庫模擬器通訊。

注意:必須在執行任何其他操作之前呼叫此方法。

簽名:

export declare function connectDatabaseEmulator(db: Database, host: string, port: number, options?: {
    mockUserToken?: EmulatorMockTokenOptions | string;
}): void;

參數

範圍類型描述
D b資料庫要修改的實例。
主持人細繩模擬器主機(例如:localhost)
港口數位模擬器連接埠(例如:8080)
選項{mockUserToken?: EmulatorMockTokenOptions |細繩; }

返回:

空白

脫機(db)

與伺服器斷開連接(所有資料庫操作將離線完成)。

客戶端自動維護與資料庫伺服器的持久連接,該連接將無限期地保持活動狀態並在斷開連接時重新連接。但是,在不需要持久連線的情況下,可以使用goOffline()goOnline()方法來控制客戶端連線。

離線時,客戶端將不再從資料庫接收資料更新。但是,本地執行的所有資料庫操作將繼續立即觸發事件,從而允許您的應用程式繼續正常運行。此外,本地執行的每個操作將自動排隊並在重新連接到資料庫伺服器時重試。

若要重新連線到資料庫並開始接收遠端事件,請參閱goOnline()

簽名:

export declare function goOffline(db: Database): void;

參數

範圍類型描述
D b資料庫要斷開連線的實例。

返回:

空白

上網(db)

重新連接到伺服器並將離線資料庫狀態與伺服器狀態同步。

應在使用goOffline()停用活動連線後使用此方法。重新連接後,客戶端將傳輸正確的資料並觸發適當的事件,以便您的客戶端自動「趕上」。

簽名:

export declare function goOnline(db: Database): void;

參數

範圍類型描述
D b資料庫要重新連線的實例。

返回:

空白

參考(資料庫,路徑)

傳回一個Reference表示資料庫中與所提供的路徑相對應的位置。如果未提供路徑, Reference將指向資料庫的根目錄。

簽名:

export declare function ref(db: Database, path?: string): DatabaseReference;

參數

範圍類型描述
D b資料庫要取得其引用的資料庫實例。
小路細繩表示傳回的Reference將指向的位置的可選路徑。如果未提供,則傳回的Reference將指向資料庫的根目錄。

返回:

資料庫參考

如果提供了路徑,則Reference指向所提供的路徑。否則, Reference指向資料庫的根。

refFromURL(資料庫,網址)

傳回一個Reference表示資料庫中與所提供的 Firebase URL 相對應的位置。

如果 URL 不是有效的 Firebase 資料庫 URL 或其網域與目前Database執行個體不同,則會引發例外狀況。

請注意,所有查詢參數( orderBy , limitToLast等等)將被忽略並且不會應用於返回的Reference

簽名:

export declare function refFromURL(db: Database, url: string): DatabaseReference;

參數

範圍類型描述
D b資料庫要取得其引用的資料庫實例。
網址細繩傳回的Reference將指向的 Firebase URL。

返回:

資料庫參考

指向所提供的 Firebase URL 的Reference

功能()

強制長輪詢()

強制使用 longPolling 而不是 websockets。如果databaseURL中使用了websocket協議,這將被忽略。

簽名:

export declare function forceLongPolling(): void;

返回:

空白

強制WebSockets()

強制使用 websockets 而不是 longPolling。

簽名:

export declare function forceWebSockets(): void;

返回:

空白

按鍵排序()

建立一個按鍵排序的新QueryConstraint

按(升序)鍵值對查詢結果進行排序。

您可以在排序資料中閱讀有關orderByKey()的更多信息

簽名:

export declare function orderByKey(): QueryConstraint;

返回:

查詢約束

按優先順序排序()

建立一個按優先順序排序的新QueryConstraint

應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(有關優先級的替代方案,請參閱排序資料

簽名:

export declare function orderByPriority(): QueryConstraint;

返回:

查詢約束

按值排序()

建立一個按值排序的新QueryConstraint

如果查詢的子項都是標量值(字串、數字或布林值),您可以按它們的(升序)值對結果進行排序。

您可以在排序資料中閱讀有關orderByValue()的更多信息

簽名:

export declare function orderByValue(): QueryConstraint;

返回:

查詢約束

伺服器時間戳()

傳回佔位符值,用於自動填入 Firebase 伺服器所確定的目前時間戳記(自 Unix 紀元以來的時間,以毫秒為單位)。

簽名:

export declare function serverTimestamp(): object;

返回:

目的

函數(增量,...)

增量(增量)

傳回一個佔位符值,可用於以提供的增量以原子方式增加目前資料庫值。

簽名:

export declare function increment(delta: number): object;

參數

範圍類型描述
三角洲數位以原子方式修改目前值的量。

返回:

目的

用於在伺服器端自動修改資料的佔位符值。

功能(啟用,...)

啟用日誌記錄(已啟用,持久)

將偵錯資訊記錄到控制台。

簽名:

export declare function enableLogging(enabled: boolean, persistent?: boolean): any;

參數

範圍類型描述
已啟用布林值如果true則啟用日誌記錄,如果false則停用日誌記錄。
執著的布林值如果true ,則記住頁面刷新之間的日誌記錄狀態。

返回:

任何

函數(極限,...)

限製到第一個(限制)

建立一個新的QueryConstraint ,將其限制為第一個特定數量的子項。

limitToFirst()方法用於設定給定回調要同步的子級的最大數量。如果我們將限制設為 100,則最初最多只會收到 100 個child_added事件。如果資料庫中儲存的訊息少於 100 條,則每個訊息都會觸發child_added事件。但是,如果我們有超過 100 條訊息,我們將只收到前 100 條有序訊息的child_added事件。當項目變更時,我們將為從活動清單中刪除的每個項目接收child_removed事件,以便總數保持在 100。

您可以在過濾資料中閱讀有關limitToFirst()的更多信息

簽名:

export declare function limitToFirst(limit: number): QueryConstraint;

參數

範圍類型描述
限制數位此查詢中包含的最大節點數。

返回:

查詢約束

限製到最後(限制)

建立一個新的QueryConstraint ,該約束僅限於傳回最後指定數量的子項。

limitToLast()方法用於設定給定回調要同步的子級的最大數量。如果我們將限制設為 100,則最初最多只會收到 100 個child_added事件。如果資料庫中儲存的訊息少於 100 條,則每個訊息都會觸發child_added事件。但是,如果我們有超過 100 條訊息,我們將只收到最後 100 條有序訊息的child_added事件。當項目變更時,我們將為從活動清單中刪除的每個項目接收child_removed事件,以便總數保持在 100。

您可以在過濾資料中閱讀有關limitToLast()的更多信息

簽名:

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

參數

範圍類型描述
限制數位此查詢中包含的最大節點數。

返回:

查詢約束

函數(記錄器,...)

啟用日誌記錄(記錄器)

將偵錯資訊記錄到控制台。

簽名:

export declare function enableLogging(logger: (message: string) => unknown): any;

參數

範圍類型描述
記錄器(訊息:字串)=> 未知自訂記錄器功能,用於控制如何記錄內容。

返回:

任何

函數(父級,...)

子級(父級,路徑)

取得指定相對路徑位置的Reference

相對路徑可以是簡單的子名稱(例如“ada”),也可以是更深的斜線分隔路徑(例如“ada/name/first”)。

簽名:

export declare function child(parent: DatabaseReference, path: string): DatabaseReference;

參數

範圍類型描述
家長資料庫參考父位置。
小路細繩從該位置到所需子位置的相對路徑。

返回:

資料庫參考

指定的子位置。

推送(父級,值)

使用唯一鍵產生新的子位置並返回其Reference

這是向項目集合添加資料的最常見模式。

如果你給push()一個值,該值被寫入生成的位置。如果您不傳遞值,則不會將任何內容寫入資料庫,且子層級仍為空(但您可以在其他地方使用Reference )。

push()產生的唯一鍵依目前時間排序,因此產生的項目清單會依時間順序排序。密鑰也被設計為不可猜測(它們包含 72 個隨機位元的熵)。

請參閱附加到資料列表。請參閱確保唯一識別碼的 2^120 種方法

簽名:

export declare function push(parent: DatabaseReference, value?: unknown): ThenableReference;

參數

範圍類型描述
家長資料庫參考父位置。
價值未知要寫入產生位置的可選值。

返回:

可參考

綜合PromiseReference ;當寫入完成時解析,但可以立即用作子位置的Reference

函數(路徑,...)

orderByChild(路徑)

建立一個按指定子鍵排序的新QueryConstraint

查詢一次只能按一個鍵排序。對同一個查詢多次呼叫orderByChild()會出錯。

Firebase 查詢可讓您即時透過任何子鍵對資料進行排序。但是,如果您事先知道索引是什麼,則可以透過安全規則中的 .indexOn 規則定義它們,以獲得更好的效能。有關詳細信息,請參閱https://firebase.google.com/docs/database/security/indexing-data規則。

您可以在排序資料中閱讀有關orderByChild()的更多信息

簽名:

export declare function orderByChild(path: string): QueryConstraint;

參數

範圍類型描述
小路細繩排序依據的路徑。

返回:

查詢約束

函數(查詢,...)

取得(查詢)

取得此查詢的最新結果。

簽名:

export declare function get(query: Query): Promise<DataSnapshot>;

參數

範圍類型描述
詢問詢問要執行的查詢。

返回:

Promise< DataSnapshot >

如果值可用,則Promise解析為結果 DataSnapshot;如果用戶端無法傳回值(例如,如果伺服器無法存取且沒有快取任何內容),則 Promise 會拒絕。

關閉(查詢、事件類型、回呼)

分離先前附加到對應on*()的回調 ( onValue , onChildAdded ) 聽眾。注意:這不是刪除偵聽器的建議方法。相反,請使用對應on*回呼傳回的回呼函數。

分離之前用on*()附加的回調。在父偵聽器上呼叫off()不會自動刪除在子節點上註冊的偵聽器,也必須在任何子偵聽器上呼叫off()才能刪除回呼。

如果未指定回調,則將刪除指定事件類型的所有回調。同樣,如果未指定 eventType,則將刪除Reference的所有回呼。

也可以透過呼叫取消訂閱回呼來刪除單一偵聽器。

簽名:

export declare function off(query: Query, eventType?: EventType, callback?: (snapshot: DataSnapshot, previousChildName?: string | null) => unknown): void;

參數

範圍類型描述
詢問詢問偵聽器註冊的查詢。
事件類型事件類型以下字串之一:「value」、「child_added」、「child_changed」、「child_removed」或「child_moved」。如果省略,則Reference的所有回呼都將被刪除。
打回來(快照:數據快照, previousChildName?: 字串 | null) => 未知傳遞給on()undefined回呼函數以刪除所有回呼。

返回:

空白

onChildAdded(查詢、回呼、cancelCallback)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName?: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName?: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildAdded(查詢、回呼、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildAdded(查詢,回調,cancelCallback,選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

對於此位置的每個初始子項,都會觸發一次onChildAdded事件,並且每次新增子項時都會再次觸發該事件。傳遞到回呼中的DataSnapshot將反映相關子項目的資料。出於排序目的,它傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildAdded(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildChanged(查詢、回呼、cancelCallback)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildChanged(查詢、回呼、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildChanged(查詢、回呼、cancelCallback、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項(或其任何後代)中儲存的資料發生變更時,將觸發onChildChanged事件。請注意,單一child_changed事件可能代表對子項目的多個變更。傳遞給回呼的DataSnapshot將包含新的子內容。出於排序目的,回呼還會傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildChanged(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildMoved(查詢、回呼、cancelCallback)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildMoved(查詢、回呼、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildMoved(查詢、回呼、cancelCallback、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

當子項的排序順序發生變化,導致其相對於其兄弟項的位置發生變化時,將觸發onChildMoved事件。傳遞給回呼的DataSnapshot將用於已移動的子項目的資料。它也傳遞第二個參數,該參數是一個字串,其中包含按排序順序的前一個同級子項的鍵,如果它是第一個子項,則為null

簽名:

export declare function onChildMoved(query: Query, callback: (snapshot: DataSnapshot, previousChildName: string | null) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照, previousChildName: 字串 | null) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildRemoved(查詢,回調,cancelCallback)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除:

  • 客戶端在該子項或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 有一個有效的查詢現在會過濾出子項(因為它的排序順序已更改或達到了最大限制)

簽名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildRemoved(查詢、回呼、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除:

  • 客戶端在該子項或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 有一個有效的查詢現在會過濾出子項(因為它的排序順序已更改或達到了最大限制)

簽名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onChildRemoved(查詢,回調,cancelCallback,選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

每次移除子項時都會觸發onChildRemoved事件。傳遞到回呼中的DataSnapshot將是已刪除的子項目的舊資料。當出現以下任一情況時,孩子將被移除:

  • 客戶端在該子項或其祖先之一上明確調用remove() - 客戶端在該子項或其祖先之一上調用set(null) - 該子項已刪除其所有子項- 有一個有效的查詢現在會過濾出子項(因為它的排序順序已更改或達到了最大限制)

簽名:

export declare function onChildRemoved(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot 和一個字串,其中包含前一個子項的鍵(按排序順序),如果它是第一個子項,則為null
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onValue(查詢、回呼、cancelCallback)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。

簽名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot。
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onValue(查詢、回呼、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。

簽名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

onValue(查詢、回呼、cancelCallback、選項)

監聽特定位置的資料變化。

這是從資料庫讀取資料的主要方式。您的回調將針對初始資料觸發,並在資料變更時再次觸發。呼叫傳回的取消訂閱回呼以停止接收更新。有關更多詳細信息,請參閱在 Web 上檢索資料

onValue事件將在初始資料儲存在該位置時觸發一次,然後在每次資料變更時再次觸發。傳遞給回呼的DataSnapshot將針對呼叫on()的位置。直到全部內容同步後才會觸發。如果該位置沒有數據,則會用空的DataSnapshot觸發( val()將傳回null )。

簽名:

export declare function onValue(query: Query, callback: (snapshot: DataSnapshot) => unknown, cancelCallback: (error: Error) => unknown, options: ListenOptions): Unsubscribe;

參數

範圍類型描述
詢問詢問要執行的查詢。
打回來(快照:數據快照) => 未知當指定事件發生時觸發的回調。回呼將傳遞一個 DataSnapshot。
取消回調(錯誤:錯誤)=> 未知一個可選的回調,如果您的事件訂閱因您的客戶端無權讀取此資料(或它有權限但現在遺失了)而被取消,則會收到通知。此回呼將傳遞一個Error對象,指示發生失敗的原因。
選項監聽選項一個可用於配置onlyOnce對象,該對象會在第一次呼叫後刪除偵聽器。

返回:

退訂

可以呼叫以刪除偵聽器的函數。

查詢(查詢,查詢約束)

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

簽名:

export declare function query(query: Query, ...queryConstraints: QueryConstraint[]): Query;

參數

範圍類型描述
詢問詢問用作新約束基礎的查詢實例。
查詢約束查詢約束[]要套用的QueryConstraint列表。

返回:

詢問

例外情況

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

函數(參考,...)

onDisconnect(參考)

傳回一個OnDisconnect物件 - 有關如何使用它的更多信息,請參閱在 JavaScript 中啟用離線功能

簽名:

export declare function onDisconnect(ref: DatabaseReference): OnDisconnect;

參數

範圍類型描述
參考資料庫參考新增 OnDisconnect 觸發器的參考。

返回:

斷開連線時

刪除(參考)

刪除此資料庫位置的資料。

子位置的所有資料也將被刪除。

刪除的效果將立即可見,並將觸發相應的事件「值」。也會開始同步刪除到 Firebase 伺服器,並且傳回的 Promise 將在完成後解析。如果提供,則同步完成後將非同步呼叫 onComplete 回呼。

簽名:

export declare function remove(ref: DatabaseReference): Promise<void>;

參數

範圍類型描述
參考資料庫參考要刪除的位置。

返回:

承諾<無效>

當伺服器上的刪除完成時解決。

runTransaction(ref, transactionUpdate, 選項)

以原子方式修改此位置的資料。

原子修改此位置的資料。與普通的set()不同runTransaction() 只會覆寫數據,而不管其先前的值如何, runTransaction()用於將現有值修改為新值,確保與其他客戶端同時寫入相同位置不會發生衝突。

為了實現這一點,您可以向runTransaction()傳遞一個更新函數,該函數用於將當前值轉換為新值。如果在成功寫入新值之前另一個用戶端寫入該位置,則將使用新的目前值再次呼叫您的更新函數,並且將重試寫入。這將重複發生,直到您的寫入成功且沒有衝突,或者您透過不從更新函數傳回值來中止交易。

簽名:

export declare function runTransaction(ref: DatabaseReference, transactionUpdate: (currentData: any) => unknown, options?: TransactionOptions): Promise<TransactionResult>;

參數

範圍類型描述
參考資料庫參考要原子修改的位置。
交易更新(目前資料:任意)=> 未知開發人員提供的函數,將傳遞儲存在此位置的當前資料(作為 JavaScript 物件)。該函數應該傳回它想要寫入的新值(作為 JavaScript 物件)。如果傳回undefined (即返回時不帶參數),則交易將中止且該位置的資料將不會被修改。
選項交易選項用於配置交易的選項物件。

返回:

Promise<交易結果>

可以選擇使用Promise代替onComplete回呼來處理成功和失敗。

設定(參考,值)

將資料寫入此資料庫位置。

這將覆蓋該位置和所有子位置的所有資料。

寫入的效果將立即可見,並會觸發對應的事件(「value」、「child_added」等)。資料同步到Firebase伺服器也將開始,完成後回傳的Promise將會被解析。如果提供,則同步完成後將非同步呼叫onComplete回呼。

為新值傳遞null相當於呼叫remove() ;即,該位置和所有子位置的所有資料都將被刪除。

set()將刪除儲存在該位置的任何優先級,因此如果要保留優先級,則需要使用setWithPriority()代替。

請注意,使用set()修改資料將取消該位置的任何待處理事務,因此如果混合set()transaction()修改相同數據,應格外小心。

單一set()將在執行set()的位置產生單一「值」事件。

簽名:

export declare function set(ref: DatabaseReference, value: unknown): Promise<void>;

參數

範圍類型描述
參考資料庫參考要寫入的位置。
價值未知要寫入的值(字串、數字、布林值、物件、陣列或 null)。

返回:

承諾<無效>

當寫入伺服器完成時解決。

設定優先權(參考,優先權)

設定此資料庫位置的資料的優先順序。

應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(請參閱排序和過濾資料)。

簽名:

export declare function setPriority(ref: DatabaseReference, priority: string | number | null): Promise<void>;

參數

範圍類型描述
參考資料庫參考要寫入的位置。
優先事項字串|數量 |無效的要寫入的優先權(字串、數字或空)。

返回:

承諾<無效>

當寫入伺服器完成時解決。

setWithPriority(參考,值,優先權)

將資料寫入資料庫位置。與set()類似,但也指定該資料的優先權。

應用程式不需要使用優先級,但可以按普通屬性對集合進行排序(請參閱排序和過濾資料)。

簽名:

export declare function setWithPriority(ref: DatabaseReference, value: unknown, priority: string | number | null): Promise<void>;

參數

範圍類型描述
參考資料庫參考要寫入的位置。
價值未知要寫入的值(字串、數字、布林值、物件、陣列或 null)。
優先事項字串|數量 |無效的要寫入的優先權(字串、數字或空)。

返回:

承諾<無效>

當寫入伺服器完成時解決。

更新(參考,值)

一次將多個值寫入資料庫。

values參數包含多個屬性-值對,這些屬性-值對將一起寫入資料庫。每個子屬性可以是簡單屬性(例如「name」),也可以是從目前位置到要更新的資料的相對路徑(例如「name/first」)。

set()方法相反, update()可用於選擇性地僅更新目前位置處所引用的屬性(而不是替換目前位置處的所有子屬性)。

寫入的效果將立即可見,並會觸發對應的事件('value'、'child_added'等)。資料同步到Firebase伺服器也將開始,完成後回傳的Promise將會被解析。如果提供,則同步完成後將非同步呼叫onComplete回呼。

單一update()將在執行update()的位置產生單一「值」事件,無論修改了多少個子項。

請注意,使用update()修改資料將取消該位置的任何待處理事務,因此如果混合update()transaction()修改相同數據,應格外小心。

null傳遞給update()將刪除該位置的資料。

參閱引入多位置更新等

簽名:

export declare function update(ref: DatabaseReference, values: object): Promise<void>;

參數

範圍類型描述
參考資料庫參考要寫入的位置。
價值觀目的包含多個值的物件。

返回:

承諾<無效>

伺服器更新完成後即可解決。

函數(值,...)

結束處(值,鍵)

建立具有指定終點的QueryConstraint

使用startAt() , startAfter() , endBefore()endAt()equalTo()可讓您為查詢選擇任意起點和終點。

終點是包含的,因此具有指定值的子項將包含在查詢中。可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有指定值的子項也必須具有小於或等於指定鍵的鍵名。

您可以在過濾資料中閱讀有關endAt()的更多信息

簽名:

export declare function endAt(value: number | string | boolean | null, key?: string): QueryConstraint;

參數

範圍類型描述
價值數量 |字串|布爾 |無效的結束的值。參數類型取決於此查詢中使用的orderBy ()函數。指定與orderBy ()類型相符的值。與orderByKey()結合使用時,該值必須是字串。
鑰匙細繩具有先前指定優先權的子級中結束的子級鍵。僅當按子項、值或優先級排序時才允許使用此參數。

返回:

查詢約束

結束之前(值,鍵)

建立具有指定終點(不包括終點)的QueryConstraint

使用startAt() , startAfter() , endBefore()endAt()equalTo()可讓您為查詢選擇任意起點和終點。

終點是唯一的。如果僅提供一個值,則值小於指定值的子項將包含在查詢中。如果指定了鍵,則子層級的值必須小於或等於指定的值,且鍵名稱小於指定的鍵。

簽名:

export declare function endBefore(value: number | string | boolean | null, key?: string): QueryConstraint;

參數

範圍類型描述
價值數量 |字串|布爾 |無效的之前結束的值。參數類型取決於此查詢中使用的orderBy ()函數。指定與orderBy ()類型相符的值。與orderByKey()結合使用時,該值必須是字串。
鑰匙細繩在具有先前指定優先權的子級中,先結束的子級鍵。僅當按子項、值或優先級排序時才允許使用此參數。

返回:

查詢約束

equalTo(值,鍵)

建立一個包含與指定值相符的子項目的QueryConstraint

使用startAt() , startAfter() , endBefore()endAt()equalTo()可讓您為查詢選擇任意起點和終點。

可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有完全相同的指定值的子級也必須具有完全相同的指定鍵作為其鍵名稱。這可用於過濾具有相同值的許多匹配項的結果集。

您可以在過濾資料中閱讀有關equalTo()的更多信息

簽名:

export declare function equalTo(value: number | string | boolean | null, key?: string): QueryConstraint;

參數

範圍類型描述
價值數量 |字串|布爾 |無效的要匹配的值。參數類型取決於此查詢中使用的orderBy ()函數。指定與orderBy ()類型相符的值。與orderByKey()結合使用時,該值必須是字串。
鑰匙細繩在具有先前指定優先權的子項中開始的子項鍵。僅當按子項、值或優先級排序時才允許使用此參數。

返回:

查詢約束

開始之後(值,鍵)

建立具有指定起點(不包括起點)的QueryConstraint

使用startAt() , startAfter() , endBefore()endAt()equalTo()可讓您為查詢選擇任意起點和終點。

起點是排他性的。如果僅提供一個值,則值大於指定值的子項將包含在查詢中。如果指定了鍵,則子層級的值必須大於或等於指定的值,且鍵名稱大於指定的鍵。

簽名:

export declare function startAfter(value: number | string | boolean | null, key?: string): QueryConstraint;

參數

範圍類型描述
價值數量 |字串|布爾 |無效的之後開始的值。參數類型取決於此查詢中使用的orderBy ()函數。指定與orderBy ()類型相符的值。與orderByKey()結合使用時,該值必須是字串。
鑰匙細繩之後啟動的子鍵。僅當按子項、值或優先級排序時才允許使用此參數。

返回:

查詢約束

開始時間(值,鍵)

建立具有指定起點的QueryConstraint

使用startAt() , startAfter() , endBefore()endAt()equalTo()可讓您為查詢選擇任意起點和終點。

起始點是包含的,因此具有指定值的子項將包含在查詢中。可選的 key 參數可用於進一步限制查詢的範圍。如果指定了,則具有指定值的子項也必須具有大於或等於指定鍵的鍵名。

您可以在過濾資料中閱讀有關startAt()的更多信息

簽名:

export declare function startAt(value?: number | string | boolean | null, key?: string): QueryConstraint;

參數

範圍類型描述
價值數量 |字串|布爾 |無效的起始值。參數類型取決於此查詢中使用的orderBy ()函數。指定與orderBy ()類型相符的值。與orderByKey()結合使用時,該值必須是字串。
鑰匙細繩開始的子鍵。僅當按子項、值或優先級排序時才允許使用此參數。

返回:

查詢約束

事件類型

以下字串之一:「value」、「child_added」、「child_changed」、「child_removed」或「child_moved」。

簽名:

export declare type EventType = 'value' | 'child_added' | 'child_changed' | 'child_moved' | 'child_removed';

查詢約束類型

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

簽名:

export declare type QueryConstraintType = 'endAt' | 'endBefore' | 'startAt' | 'startAfter' | 'limitToFirst' | 'limitToLast' | 'orderByChild' | 'orderByKey' | 'orderByPriority' | 'orderByValue' | 'equalTo';

退訂

可以呼叫以刪除偵聽器的回調。

簽名:

export declare type Unsubscribe = () => void;