Firebase一对一聊天

时间:2018-06-29 01:58:01

标签: javascript firebase firebase-realtime-database firebase-authentication

我正在尝试在全球Firebase聊天中创建一对一聊天。我想知道我将如何进行?我现在正在做的是创建了另一个HTML文件,该文件将在该文件中进行私人聊天,并且我正在按用户ID搜索 这段代码。

            oneOnone.addEventListener('click', function(e){
            // Attach an asynchronous callback to read the data at our posts reference
            ref.on("value", function (snapshot) {}, function (errorObject) {
                console.log("The read failed: " + errorObject.code);
            });
            ref.orderByChild("userId").on("child_added", function (snapshot) {
               console.log(snapshot.val().userId);
               console.log(searchId);
                if(searchId.value === snapshot.val().userId){
                    window.location.href = 'privatemessage.html';
                } 
            });
        });

然后将其导入到privatemessage.html文件中,所有聊天应该在该文件中进行。我一直觉得我的数据库可能不正确。 enter image description here

firebase上的数据库仍然像在全局聊天中那样注册人员,而不是一对一聊天。我只是完全困惑如何确保聊天只能在两个人之间进行。如果有人可以推荐指南,请对1v1聊天的工作方式进行完整的说明,不胜感激。是的,我看过文档,它确实没有解释如何进行1v1聊天。

修改

所以我已经将数据库更改为此 enter image description here

所以我所依靠的是一对一的演讲 var pmChat = database.ref('chat/' + userId);

基本上创建一个新引用,然后链接该用户标识,但是现在,如何链接另一个用户的用户标识?

1 个答案:

答案 0 :(得分:3)

您可以将当前用户ID与其他用户ID链接起来,如下所示:

database.ref('chat').child(currentUserId).child(otherUserId).child(message);
database.ref('chat').child(otherUserId).child(currentUserId).child(message);