我正在开发一个使用fire base的web应用程序 这是我的java脚本代码:
<script src="https://www.gstatic.com/firebasejs/4.3.0/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyCuG09M2Z10h-sVz3n0tu-lzcNzspiZM5o",
authDomain: "actfirebase.firebaseapp.com",
databaseURL: "https://actfirebase.firebaseio.com",
projectId: "actfirebase",
storageBucket: "actfirebase.appspot.com",
messagingSenderId: "1024677586041"
};
firebase.initializeApp(config);
var rootRef = firebase.database().ref().child("news");
rootRef.on("child_added", snap => {
var name = snap.child("news1").val();
var name2 = snap.child("news2").val();
document.getElementById("fnews").innerHTML = name;
});
</script>
和她是html
<section class="news" id="news" style="opacity:0.01;">
<h3 style="text-align:center;">Latest news</h3>
<article id="newses">
<h2 id="fnews">this is the standers text.!!!</h2>
</article>
<article>
<div id="news21" class="info" style=" text-align:center; width:98%;" >
<h4 Style="color:#ffffff;">Omnis iste natus error </h4>
<p id="news22" style="color:#000066" >Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores (...)</p>
</div>
</article>
<h4 style="color:#ffffff; text-align:center; "><a href="#" style="color:#ffffff;">ARCHIVED NEWS</a></h4>
<!-- / container -->
</section>
我的问题是,当我启动应用程序时,文本更改是standers文本。!!!为NULL
我不知道问题是什么,请帮帮我
提前感谢。
答案 0 :(得分:0)
你是否正在听错事件?
尝试改变:
rootRef.on("child_added", snap => {
到
rootRef.on("value", snap => {
并且孩子news1
将加载正常。
如果您只想在将新子项添加到Firebase时加载数据,则必须不必直接访问该引用的子项。这是因为只有任何一个孩子意味着没有孩子以前只添加了新孩子时,才会触发child_added。
rootRef.on("child_added", snap => {
var name = snap.val(); // <--- omit the .child()
...