鍍金池/ 教程/ 人工智能/ Firebase事件類型
Firebase數(shù)組
Firebase讀取數(shù)據(jù)
Firebase開發(fā)環(huán)境設(shè)置
Firebase電子郵件認(rèn)證
Firebase事件類型
Firebase數(shù)據(jù)
Firebase寫入列表數(shù)據(jù)
Firebase連接檢查
Firebase簡介
Firebase分離回調(diào)
Firebase查詢和排序
Firebase使用Google賬號登錄
Firebase使用Github賬號登錄
Firebase過濾數(shù)據(jù)
Firebase匿名身份驗證
Firebase寫入事務(wù)數(shù)據(jù)
Firebase寫入數(shù)據(jù)
FireBase教程
Firebase安全

Firebase事件類型

Firebase提供了幾種不同的事件類型來讀取數(shù)據(jù)。 下圖顯示了想要讀取的數(shù)據(jù) -

下面介紹一些最常用的方法。

第一個事件類型是值。 我們在上一章已經(jīng)演示了如何使用值。 每次數(shù)據(jù)更改時都會觸發(fā)此事件類型,并且將檢索包括子項在內(nèi)的所有數(shù)據(jù)。

child_added

這個事件類型將被每個運(yùn)動員觸發(fā)一次,每次新運(yùn)動員被添加到數(shù)據(jù)中。 讀取列表數(shù)據(jù)非常有用,因為我們可以從列表中獲得添加的運(yùn)動員和前一個運(yùn)動員的訪問權(quán)限。

示例
現(xiàn)在來看看下面的一個例子 -

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8" />
        <title>FireBase Example</title>
        <script src="https://www.gstatic.com/firebasejs/4.9.1/firebase.js"></script>
        <script>
          // Initialize Firebase
          var config = {
            apiKey: "AIzaSyAOSPYpgn7T_bKa6VbCaSeQlsw-3p3zqDs",
            authDomain: "yiibai-firebase.firebaseapp.com",
            databaseURL: "https://yiibai-firebase.firebaseio.com/",
            projectId: "yiibai-firebase",
            storageBucket: "yiibai-firebase.appspot.com",
            messagingSenderId: "334522625008"
          };
          firebase.initializeApp(config);
          var playersRef = firebase.database().ref("players/");
          playersRef.on("child_added", function(data, prevChildKey) {
               var newPlayer = data.val();
               //console.log("name: " + newPlayer.name);
               console.log("age: " + newPlayer.age);
               console.log("number: " + newPlayer.number);
               console.log("Previous Player: " + prevChildKey);
            });
        </script>
    </head>
<body>

執(zhí)行上面示例代碼,得到以下結(jié)果。

child_changed

這個事件類型在數(shù)據(jù)改變時被觸發(fā)。

示例

考慮下面的例子。

var playersRef = firebase.database().ref("players/");

playersRef.on("child_changed", function(data) {
   var player = data.val();
   console.log("The updated player age is " + player.age);
});

可以在Firebase控制臺中將Amandaage字段的值由21更改為28以獲取更新。

child_removed

假設(shè)原始數(shù)據(jù)如下 -

如果想獲得已刪除數(shù)據(jù)的訪問權(quán)限,可以使用child_removed事件類型。

示例

var playersRef = firebase.database().ref("players/");

playersRef.on("child_removed", function(data) {
   var deletedPlayer = data.val();
   console.log(deletedPlayer.age + " has been deleted");
});

上面示例中,假設(shè)我們刪除索引號為:100,名字為:Maxsu的一行數(shù)據(jù)。則 -