Javascript Firechat-Can';不要发送消息

Javascript Firechat-Can';不要发送消息,javascript,firebase,firebase-realtime-database,chat,Javascript,Firebase,Firebase Realtime Database,Chat,我有一个正确初始化的实现,但是当你登录时,你可以创建和进入房间,但是消息没有任何作用。我已经构建了处理消息发送的函数,但我认为它没有将FirechatUI和Firechat对象正确地连接到Firebase数据库 function initChat(user) { var room = ''; var db = firebase.database().ref("chat"); var chat = new FirechatUI(db, document.getElement

我有一个正确初始化的实现,但是当你登录时,你可以创建和进入房间,但是消息没有任何作用。我已经构建了处理消息发送的函数,但我认为它没有将FirechatUI和Firechat对象正确地连接到Firebase数据库

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;
}
“消息添加”事件从未被触发,但“房间进入”和“房间退出”事件会被触发。

根据。。。调用
api.on()
时,这只绑定事件,不执行任何操作。由于上面的函数
initChat()
看起来很相似,因此其他事件可能来自何处甚至是个问题。您需要首先加入一个文件室,然后向该文件室发送一条消息,以便触发事件
messageadd
。而且&可以发挥作用;例如

"$roomId": {
    ...
    // a list of users that may read messages from this room.
    "authorizedUsers": {
        ".write": "(auth != null) && (!data.exists() || root.child('moderators').hasChild(auth.uid) || data.hasChild(auth.uid))"
    }
}

除非
主持人
“$roomId/authorizedUsers”
没有添加相关的用户
,否则没有理由触发事件。一个
项等于一个消息订阅。

好的,我尝试用firebase创建新的应用程序并部署您的代码

数据库 我正在选择实时数据库

您不需要创建表,应该设置数据库规则。在我的例子中,我设置了读写的true

然后,我们可以转到已部署的应用程序,登录并尝试创建聊天和发布消息。

所有的工作,如果我们试图从另一个帐户登录-所有数据都存在。


简历:您应该设置数据库规则。

规则设置为true,供每个人阅读和写入。我需要先设置数据库,还是在添加消息和文件室时自动添加这些表和列?