-1

I tried to learn how to make a chat with angularjs, to do so I found this site https://medium.com/@maheshkariya/create-a-simple-chat-system-using-angularjs-and-firebase-360cfcf2b34 tried code, but is old. I tried to update it, but I stuck.
Head in html file have:

<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>

In 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 { }
        };

    }

})();

In console there is error:

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)

How fix it?

I tried add https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js script in html file, but also get error:

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"}
Kyzrej
  • 1
  • 3
  • 1
    Your codepen contains sensitive API Key data. Please edit it out and paste the relevant part of the code in your question. – Rodrigo Leite Nov 05 '19 at 16:55
  • You already know the answer to your first error (add that javascript file). For the second error, you need to share your security rules as well. More generally, you should share the relevant parts of your code in the body of the question itself, using a [Minimum Reproducable Example](https://stackoverflow.com/help/minimal-reproducible-example) rather than linking to external sites like codepen, as external links can go invalid and won't be useful to future readers. – robsiemb Nov 05 '19 at 17:51
  • Likely relevant to your second error: https://stackoverflow.com/questions/39850118/client-doesnt-have-permission-to-access-the-desired-data-in-firebase – robsiemb Nov 05 '19 at 17:58

1 Answers1

0

On firebase go to app console next go on database and create realtime database (in the past it was created automatically, now You must create manually).

Kyzrej
  • 1
  • 3