Firebase 事件“<user> 正在写入...”,如 WhatsApp

问题描述 投票:0回答:2

有什么方法可以在 Firebase 事件中克隆 Whatsapp 事件“[用户]正在写入...”?

我在 https://www.firebase.com/docs/web/api/ 中阅读了有关 Firebase 事件的信息,但我没有找到有关该问题的任何内容。

谢谢。

firebase firebase-realtime-database
2个回答
6
投票

我不久前写了这样一个打字指示器。

var ref = new Firebase('https://<your-app>.firebaseio.com');
var input = document.getElementById('input');
var typers = document.getElementById('typers');
var uid = Date.now(); // generate a fake user id
var timer;

// attach a listener that display all people current typing in a list
ref.on('value', function(snapshot) {
  typers.innerText = '';
  snapshot.forEach(function(typer) {
    var li = document.createElement('li');
    li.innerText = typer.key();
    typers.appendChild(li);
  });
});

// whenever the content of the textarea changes
input.addEventListener('input',function(e) {
  // mark this user a "typing"
  ref.child(uid).set(true);
  // if we're counting down, stop the timer
  if (timer) clearTimeout(timer);
  // remove this user in 2 seconds
  timer = setTimeout(function() {
    ref.child(uid).remove();
  }, 2000);
});

要查看它的实际效果,请查看 this JSBin。 我宣布这一消息的推文


2
投票

您可以在聊天信息中设置标记

例如:

{ "chat1 : 
    {
      "name: "Jon", 
      "isWriting" : true
     }
"}

发送消息以将布尔值更改为“false”时,设置一个时间,如果不再连接到互联网,则将布尔值更改为 false。

© www.soinside.com 2019 - 2024. All rights reserved.