将Firebase数据读取至网页时遇Uncaught TypeError错误排查
解决Firebase初始化后报错「Uncaught TypeError: firebase is not a function」的问题
我一眼就瞅到你代码里的问题啦,咱们拆解来看:
核心错误原因
你重复定义了msgRef变量,而且第二次的写法完全错误:
var msgRef = firebase().ref('survey');
这里的firebase是Firebase SDK提供的全局对象,不是可以直接加括号调用的函数,所以浏览器会抛出「firebase is not a function」的错误。
另外你之前已经正确获取过一次引用了:
var msgRef = firebase.database().ref('survey');
完全没必要再重复定义,反而把正确的逻辑搞乱了。
修正后的完整代码
// Initialize Firebase var config = { apiKey: "AIzaSyBz13eirmEOGD1uXOZwf6tKGnEsjfwsUFo", authDomain: "platformtechproject.firebaseapp.com", databaseURL: "https://platformtechproject.firebaseio.com", projectId: "platformtechproject", storageBucket: "platformtechproject.appspot.com", messagingSenderId: "1065758005439" }; firebase.initializeApp(config); var database = firebase.database(); // 只需要这一次引用定义就行 var msgRef = firebase.database().ref('survey'); //console.log(firebase); msgRef.on('value', gotData, errData); // 别忘了补充你的gotData和errData函数哦 function gotData(snapshot) { // 处理获取到的数据逻辑 } function errData(error) { // 处理错误逻辑 console.error('读取数据失败:', error); }
额外提醒
还要确保你在HTML文件里正确引入了Firebase的必要脚本(顺序不能错):
<!-- 先引入Firebase核心库 --> <script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-app.js"></script> <!-- 再引入数据库模块 --> <script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-database.js"></script>
内容的提问来源于stack exchange,提问作者user8840249
相关产品推荐
相关产品推荐

