从Firebase检索网站的嵌套数据

时间:2018-11-18 08:55:51

标签: javascript html web firebase-realtime-database

This is how my html looks like

<!DOCTYPE html>
<html>
<head>
<title>Pet Article</title>

<script src="https://www.gstatic.com/firebasejs/5.5.8/firebase.js"></script>

</head>



<body>

	
	<img src = "cat.jpg" width = 700px , height = "500px" />
	<img src = "dog.jpg" width = 700px , height = "500px" />

	<p>This is the paragraph <br /> Need more?</p>
	<hr />
	
	<h1 id="big0ne" ></h1>	
	
	<script>
  // Initialize Firebase
  var config = {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: ""
  };
  firebase.initializeApp(config);
  
		var big0ne = document.getElementById('big0ne');
		var dbRef = firebase.database().ref().child('text');
		dbRef.on('value', snap => big0ne.innerText = snap.val());
			
</script>
	
</body>
</html>

我是编程方面的新手,这是我第一次在这里问,因此请耐心等待。

我们被要求使用Firebase数据库制作一个项目,并将其连接到我们的网站以检索数据。我在youtube和互联网上找到了教程,但是我似乎找不到能在firebase上检索嵌套值的教程。它返回数据为 [对象对象]

我想知道如何在Firebase中检索嵌套数据。我将附上数据库外观的图像。这是我的html代码。我没有制作单独的JavaScript文件。我只是将javascript代码放在“ script”标签内,因为它仍然可以正常工作。出于安全原因,我将故意删除API密钥等。

1 个答案:

答案 0 :(得分:0)

您现在可以从Firbase中读取以下代码:

var dbRef = firebase.database().ref().child('text');
dbRef.on('value', snap => big0ne.innerText = snap.val());

这将读取text节点的值,然后使用val()来获取其值。查看您共享的JSON屏幕截图,text的值为:

{
  "text2": "Wonder Pets"
}

这本身就是一个JavaScript对象,因此,如果在其上调用toString()(代码隐式地执行此操作),则会得到"[object Object]"(或它的某些变体,具体取决于浏览器)。

要获取text2子节点的值,您应该使用:

big0ne.innerText = snap.child("text2").val()

因此,在上一行中,我们获取快照的text2子节点,然后获取快照的子节点的值,正是您想要的字符串。