FirebaseExtended / firechat

Real-time Chat powered by Firebase
https://firechat.firebaseapp.com
MIT License
2.42k stars 1.04k forks source link

Messages will not send #110

Open fleetclean opened 5 years ago

fleetclean commented 5 years ago

I have a Firechat implementation that initializes properly but when logged in you can create and enter rooms but the messages go nowhere. I've built functions to handle the sending of messages but I don't think it's connecting the FirechatUI and Firechat objects correctly to the Firebase database.

    function initChat(user) {
        var room = '';
        var db = firebase.database().ref("chat");
        var chat = new FirechatUI(db, document.getElementById('firechat'));
        var api = chat._chat;
        console.log(api);
        api.setUser(user.uid, user.displayName, function(user) {
            api.resumeSession();
        });

        chat.setUser(user.uid, user.displayName, function(user) {
            chat.resumeSession();
        });

        api.on('message-add', function(messagedRoom, messageContent) {
            console.log('Sent message to room: '+messagedRoom.id+' with the content "'+messageContent+'"');
            api.sendMessage(messagedRoom.id, messageContent, 'default');
        });

        api.on('room-enter', function(enteredRoom) {
            api.enterRoom(enteredRoom.id);
            room = enteredRoom.id;
        });

        api.on('room-exit', function(exitedRoom) {
            api.leaveRoom(exitedRoom.id);
            room = '';
        });

        isInitialized = true;
    }

The "message-add" event never gets triggered but the "room-enter" and "room-exit" events do.

FrostyAnimations126 commented 3 years ago

You have to create a new Firechat object with var api = new Firechat(db); also,user does not appear to be defined, you should use var user = firebase.auth().currentUser;