javascript - 为什么我收到错误“firebase.database 不是函数”?
问题描述
我试图学习如何与 angularjs 聊天,为此我发现了这个网站https://medium.com/@maheshkariya/create-a-simple-chat-system-using-angularjs-and-firebase-360cfcf2b34试过代码,但很旧。我试图更新它,但我卡住了。
html文件中的头部有:
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.8/angular.min.js">
</script>
<script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-firestore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angularFire/2.3.0/angularfire.min.js"></script>
<script src="js/script.js"></script>
在 script.js 中:
(function() {
"use strict";
angular.module('chat-app', ['firebase']);
angular.module('chat-app')
.factory('Messages', Messages);
Messages.$inject = ['$firebaseArray'];
function Messages($firebaseArray) {
return function() {
var config = {
apiKey: "******************",
authDomain: "*************",
databaseURL: "****************"
};
firebase.initializeApp(config);
var rootRef = firebase.database().ref();
return $firebaseArray(rootRef);
}
}
angular.module('chat-app')
.controller('ChatCtrl', ChatCtrl);
ChatCtrl.$inject = ['Messages'];
function ChatCtrl(Messages) {
var self = this;
self.messages = Messages();
self.saveMessage = function() {
if (self.name && self.message) {
self.messages.$add({ name: self.name, text: self.message });
self.message = null;
} else { }
};
}
})();
在控制台中有错误:
TypeError: firebase.database is not a function
at pen.js:28
at ChatCtrl (pen.js:43)
at Object.invoke (angular.js:5141)
at S.instance (angular.js:11704)
at p (angular.js:10517)
at g (angular.js:9832)
at g (angular.js:9835)
at angular.js:9697
at angular.js:1965
at m.$eval (angular.js:19393)
怎么修?
我尝试在 html 文件中添加https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js脚本,但也得到错误:
Error: "permission_denied at /: Client doesn't have permission to access the desired data."
e https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onComplete https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
startListening https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
sendListen_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onDataMessage_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onDataMessage_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onPrimaryMessageReceived_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
connReceiver_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
t https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
wt https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
t https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
n https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
handleResponse https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
scriptTagHolder https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
pRTLPCB https://s-usc1c-nss-209.firebaseio.com/.lp?start=t&ser=25217500&cb=1&v=5&ns=chatbot-ad582:6
<anonymous> https://s-usc1c-nss-209.firebaseio.com/.lp?id=11085377&pw=DjtoYaTDIL&ser=5478690&ns=chatbot-ad582&seg0=1&ts0=1&d0=eyJ0IjoiZCIsImQiOnsiciI6MiwiYSI6InEiLCJiIjp7InAiOiIvIiwiaCI6IiJ9fX0.:1
angular.min.js:127:303
Error: "permission_denied at /: Client doesn't have permission to access the desired data."
e https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onComplete https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
startListening https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
sendListen_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onDataMessage_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onDataMessage_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
onPrimaryMessageReceived_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
connReceiver_ https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
t https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
wt https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
t https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
n https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
handleResponse https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
scriptTagHolder https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js:1
pRTLPCB https://s-usc1c-nss-209.firebaseio.com/.lp?start=t&ser=25217500&cb=1&v=5&ns=chatbot-ad582:6
<anonymous> https://s-usc1c-nss-209.firebaseio.com/.lp?id=11085377&pw=DjtoYaTDIL&ser=5478690&ns=chatbot-ad582&seg0=1&ts0=1&d0=eyJ0IjoiZCIsImQiOnsiciI6MiwiYSI6InEiLCJiIjp7InAiOiIvIiwiaCI6IiJ9fX0.:1
Possibly unhandled rejection: {"code":"PERMISSION_DENIED"}
解决方案
在firebase上转到应用程序控制台,然后继续数据库并创建实时数据库(过去它是自动创建的,现在您必须手动创建)。
推荐阅读
- python - 从一列拆分字符串并在python中创建一个新列
- linux - 如何使用包含 grep 和引号的 ssh -t 命令
- java - Java接口&
- c# - 如何使用 redis 作为二级索引提供排序功能
- html - Div 不正确
- c++ - gdb(MinGW)不会因断言失败而中断(VSCode 配置)
- java - 请解释一下apache camel中concurrentConsumers和spring.activemq.pool.max-connections的用法的区别
- database - 而不是 use_nl 的哈希连接强制优化器
- javascript - 无法使用 JS 获取 XML 文件值
- elasticsearch - Elasticsearch 集群每个节点不识别其他节点