Javascript Firechat-Can';不要发送消息
我有一个正确初始化的实现,但是当你登录时,你可以创建和进入房间,但是消息没有任何作用。我已经构建了处理消息发送的函数,但我认为它没有将FirechatUI和Firechat对象正确地连接到Firebase数据库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
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,供每个人阅读和写入。我需要先设置数据库,还是在添加消息和文件室时自动添加这些表和列?