0

因此,我一直在使用Firebase作爲我的網站(這是一個基於Web的項目,使用HTML,CSS和JS)的數據庫,我遇到了從它檢索數據的問題。需要幫助從Firebase檢索數據

基本上這個網站允許用戶爲角色創建一個配置文件(他們可以填寫名稱,角色統計信息等),當他們點擊提交時,它會保存他們填寫到數據庫的值。

這些值保存得非常好,但是當我去檢索數據時,該命令似乎沒有做任何事情。

因此,爲了獲得型材,我一直在嘗試使用這段代碼以獲得無論是存儲在指定.REF(路徑):

var uid = firebase.auth().currentUser.uid; 
var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey(); 

其中根據火力地堡文檔應該在我在.ref()中指定的路徑返回一個鍵列表。然而,每當我試圖訪問無論是在變種,它只是給我一個包含鏈接,看起來像這樣的數據庫中的字符串:

https://#mydatabaseurlhere.firebaseio.com/users/uid/chars 

哪裏#mydatabaseurlhere是我在火力地堡的應用程序創建的URL,而uid是認證用戶的ID。

我一直在閱讀文檔,它告訴我上面的代碼應該返回我指定的路徑上的任何東西的列表,但到目前爲止它只是給了我一個鏈接。有沒有我從文檔中丟失的東西可以讓我訪問數據庫中當前的任何數據?因爲我試圖使用.once()拍攝快照也無濟於事。我還設置了關於/ users /的規則,允許任何人讀/寫數據庫,但我仍然無法訪問數據(或者我正在訪問,我只是錯過了如何檢索它)。

無論哪種方式,我想知道如何能夠訪問這些數據,因爲我非常困惑,爲什麼我似乎無法檢索已成功寫入數據庫的數據。

回答

1

你是定義查詢。但那還沒有檢索數據。

要檢索數據,您需要附加一個偵聽器。例如:

var uid = firebase.auth().currentUser.uid; 
var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey(); 

getChar.on('value', function(snapshot) { 
    snapshot.forEach(function(child) { 
     console.log(child.key, child.val()); 
    }); 
}); 
+0

哦,這就是你如何使用快照。這些文檔讓它有點混亂,讓我覺得使用聽衆和使用快照是兩碼事。非常感謝你的幫助! – shstyoo